js正则解析SQL字符串
正则表达式 解析SQL 语法字符串
字符串样例
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))
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回你,该快速结贴给分了,下面正则值多少分就给多少吧......
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]);
[解决办法]
<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.*”怎么办呢?正则的实质是最大限度抽象和简洁。
<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>