如何在javascript中搜索字符串中的单词(而不仅仅是子字符串)?

时间:2017-08-30 15:32:33

标签: javascript regex string substring indexof

我熟悉搜索给定子字符串的字符串:

if (string.indexOf(substring) > -1) {
    var containsSubstring = true;
}

但是如果子串需要一个单词怎么办?

  

一句话:

     
      
  • 它必须位于字符串的开头,后面有空格;或
  •   
  • 在字符串的末尾,前面有一个空格;或
  •   
  • 在字符串的中间,每边都有一个空格
  •   

如果我正在寻找子串fox

the quick brown fox // matches
fox jumps over the lazy dog // matches
quick brown fox jumps over // matches


the quick brownfox // does not match
foxjumps over the lazy dog // does not match
quick brownfox jumps over // does not match
quick brown foxjumps over // does not match
quick brownfoxjumps over // does not match

有没有办法用indexOf来实现上述结果,还是需要使用正则表达式?

3 个答案:

答案 0 :(得分:1)

您可以使用search方法。

var string = "foxs sas"

var search = string.search(/\bfox\b/) >= 0? true : false;

console.log(search)

答案 1 :(得分:1)

您是否尝试过使用带有字边界的正则表达式:

if (/(\bfox\b)/g.test(substring)) {
    var containsSubstring = true;
}

https://regex101.com/r/G3iOGi/1

答案 2 :(得分:0)

你可以通过检查它是否在字符串的开头并且在字符串之后有空格,或者在字符串的末尾并且在字符串之前有空格,或者在字符串的中间并且有空格来实现这一点。之前和之后。