[英]Javascript regex to check for a word followed by a character
我有一个sql
如下所示
sql = "select avg ( total_cost) from business ;"
或者
sql = "select avg(total_cost) from business ;"
现在我想检查sql
中是否存在avg
或max
后跟(一个或多个空格) (
这是我的正则表达式
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*\(/
请参阅正则表达式演示和正则表达式图:
细节
\b
- 单词边界(?:avg|max|min|count|sum)
- 匹配内部任何单词的非捕获组\s*
- 0+ 个空格\(
- 一个(
字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.