如何检查字符串在javascript中是否有特定单词

How can I check if string has particular word in javascript

本文关键字:是否 单词 javascript 何检查 检查 字符串      更新时间:2023-09-26

现在,我知道我可以计算字符串是否包含特定的子字符串。使用此:

if(str.indexOf("substr") > -1){
}

有了子字符串'GRE',我想匹配我的自动完成列表:

GRE:数学

GRE数学

但我不想匹配:

国会

并且我特别需要匹配:

NON-WORD-CHAR GRE NON-WORD-CHAR以及
GRE

在我的情况下,什么应该是完美的正则表达式?

也许您想使用'b单词边界:

('bGRE'b)

以下是的解释

演示:http://regex101.com/r/hJ3vL6

MD,如果我理解您的规范,这个简单的正则表达式应该适用于您:

'W?GRE(?!'w)(?:'W'w+)?

但如果你能指定你愿意允许的非单词字符,我更喜欢[:-]?GRE(?!'w)(?:[:-]'w+)?这样的字符(见下面的解释)。

这将匹配

GRE
GRE:Math
GRE-Math

而不是CONGRES

不过,理想情况下,我想用允许的字符列表替换'W(非单词字符),例如[-:]Why?因为'W会匹配您不想要的非单词字符,例如空格和回车。所以这份清单上的内容由你自己决定。

这是怎么回事?

'W?可以根据您的指定任意匹配一个非单词字符。然后我们匹配文字GRE。则先行CCD_ 13断言下一个字符不能是单词字符。然后,我们可以选择匹配一个非单词字符(根据您的规范),后跟任意数量的单词字符。

根据您看到的显示位置,您可以添加边界。

您可以使用正则表达式:/'bGRE'b/g

if(/'bGRE'b/g.test("string")){
  // the string has GRE
}
else{
  // it doesn't have GRE
}

'b表示单词边界