我有一个sql
看起来像下面的
sql = "select avg ( total_cost) from business ;"
要么
sql = "select avg(total_cost) from business ;"
现在,我想检查avg
或max
之后(一个或多个空格)(
是存在于sql
这是我的正则表达式
var patt = new RegExp(/(avg|max|min|count|sum\s*[(])/);
var check = patt.test(sql);
它avg
在查询中存在时有效,但如果查询如下
select (total_cost) from business ;
它仍然为条件匹配。
最终结果应该是
sql = "select avg ( total_cost) from business ;" -->true
sql = "select max( total_cost) from business ;" -->true
sql = "select avg_cost from business ;" -->false
sql = "select max total_cost from business ;" -->false
我究竟做错了什么?
你需要
/\b(?:avg|max|min|count|sum)\s*\(/
请参阅regex演示和regex图:
细节
\b
-字边界(?:avg|max|min|count|sum)
-匹配其中任何单词的非捕获组\s*
-0+空格\(
-一个(
字符本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句