首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js正则解析SQL字符串,该如何处理

2012-02-26 
js正则解析SQL字符串正则表达式 解析SQL 语法字符串字符串样例JScript codeselect * from mtabselect * fr

js正则解析SQL字符串

正则表达式 解析SQL 语法字符串

字符串样例

JScript code
select * from mtabselect * from mtab where id=10select * (select * from mmtab where id=10) where id=10//取得 (select * from mmtab where id=10)select * (select * from mmtab where (id=10 and zz=5)) where id=10//取得 (select * from mmtab where (id=10 and zz=5))select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5)//取得 (select * from mmtab where (id=10 and zz=5))select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5) order by id desc//取得 (select * from mmtab where (id=10 and zz=5)) 



所有后边也可能没有where子句

先谢谢大家了







[解决办法]
(?<=select \* )\([^)]+\)
[解决办法]
要写个SQL Parser
可以看一下 TrimQuery http://code.google.com/p/trimpath/wiki/TrimQuery
[解决办法]
(?<=select \* )\([^)]+[)][)]*
[解决办法]
JScript code
var str = "select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5) order by id desc";    alert(str.match(/\(([^\(]*(\([^\)]*\))*)\)/)[1]);
[解决办法]
一直想学正则,呵呵,帮顶了
[解决办法]
LZ, 今天51回你,该快速结贴给分了,下面正则值多少分就给多少吧......
JScript code
var str = "select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5) order by id desc";    alert(str.match(/\([^\)]+\)+/g)[0]);
[解决办法]
JScript code
<script>var arr=["select * from mtab",         "select * from mtab where id=10",         "select * (select * from mmtab where id=10) where id=10",        //取得 (select * from mmtab where id=10)         "select * (select * from mmtab where (id=10 and zz=5)) where id=10",        //取得 (select * from mmtab where (id=10 and zz=5))         "select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5)",        //取得 (select * from mmtab where (id=10 and zz=5))         "select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5) order by id desc"]        //取得 (select * from mmtab where (id=10 and zz=5)) var reg=/(^select.*?)(\(?select.*\)?)(where.*?$)/ig;for(var i=0;i<arr.length;i++)    document.write(arr[i].replace(reg,"$2")+"<br>");</script>
[解决办法]
又来看看,还没有得分啊。楼上的朋友,如果字串中没有“select.*”怎么办呢?正则的实质是最大限度抽象和简洁。
JScript code
<script>var arr=["select * from mtab",         "select * from mtab where id=10",         "select * (select * from mmtab where id=10) where id=10",        //取得 (select * from mmtab where id=10)         "select * (select * from mmtab where (id=10 and zz=5)) where id=10",        //取得 (select * from mmtab where (id=10 and zz=5))         "select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5)",        //取得 (select * from mmtab where (id=10 and zz=5))         "select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5) order by id desc"]        //取得 (select * from mmtab where (id=10 and zz=5)) var reg=/\([^\)]+\)+/g;for(var i=0;i<arr.length;i++)    ! arr[i].match(reg) || document.write(arr[i].match(reg)[0]+"<br>");</script> 

热点排行
Bad Request.