繁体   English   中英

Javascript 正则表达式检查一个单词后跟一个字符

[英]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中是否存在avgmax后跟(一个或多个空格) (

这是我的正则表达式

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM