繁体   English   中英

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

[英]How can I check if string has particular word in javascript

现在,我知道我可以计算一个字符串是否包含特定的子字符串了。

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

我的子字符串“ GRE”要与我的自动填充列表匹配:

GRE:数学

GRE-数学

但我不想匹配:

CONGRES

我特别需要匹配:

NON-WORD-CHAR GRE和NON-WORD-CHAR
GRE

就我而言,完美的正则表达式应该是什么?

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

(\\bGRE\\b)

是解释

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

医师,如果我了解您的规格,此简单的正则表达式将为您工作:

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

但是我更喜欢[:-]?GRE(?!\\w)(?:[:-]\\w+)? 如果您能够指定愿意允许的非单词字符(请参见下面的说明)。

这将匹配

GRE
GRE:Math
GRE-Math

但不是CONGRES

不过,理想情况下,我想将\\W (非单词字符)替换为允许的字符列表,例如[-:]为什么? 因为\\W会匹配您不需要的非单词字符,例如空格和回车符。 因此,该列表中的内容由您决定。

这是如何运作的?

\\W? (可选)匹配您指定的一个非单词字符。 然后我们匹配文字GRE 然后,超前(?!\\w)断言下一个字符不能是单词字符。 然后,可选地,我们匹配一个非单词字符(根据您的规范),后跟任意数量的单词字符。

根据出现此位置的位置,可以添加边界。

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

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

\\b表示单词边界

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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