JavaScript/jQuery - How to check if a string contain specific words
1 2 3 4 | $a = 'how are you'; if (strpos($a,'are') !== false) { echo 'true'; } |
在PHP中,我们可以使用上面的代码检查字符串是否包含特定的单词,但是如何在javascript/jquery中执行相同的函数?
您可以为此使用indexof
1 2 3 4 5 6 | var a = 'how are you'; if (a.indexOf('are') > -1) { return true; } else { return false; } |
编辑:这是一个老的答案,它每隔一段时间就会得到一次投票,所以我想我应该澄清一下,在上面的代码中,不需要
1 2 | var a = 'how are you'; return a.indexOf('are') > -1; |
ecmascript2016中的更新:
1 2 | var a = 'how are you'; return a.includes('are'); //true |
不应将
正确的功能:
1 2 3 4 5 | function wordInString(s, word){ return new RegExp( '\\b' + word + '\\b', 'i').test(s); } wordInString('did you, or did you not, get why?', 'you') // true |
这将找到一个单词,一个真正的单词,而不仅仅是该单词的字母在字符串中的某个位置。
如果您正在寻找准确的单词,并且不希望它与"噩梦"(这可能是您需要的)等匹配,则可以使用regex:
1 2 3 4 5 | /\bare\b/gi \b = word boundary g = global i = case insensitive (if needed) |
如果您只想找到字符"are",那么使用
如果要匹配任意单词,必须基于单词字符串编程构造regexp(正则表达式)对象本身,并使用
您正在查找indexof函数:
1 | if (str.indexOf("are") >= 0){//Do stuff} |
您可能需要在JS中使用include方法。
1 2 3 | var sentence ="This is my line"; console.log(sentence.includes("my")); //returns true if substring is present. |
附言:include区分大小写。
本遗嘱
1 | /\bword\b/.test("Thisword is not valid"); |
返回
1 | /\bword\b/.test("This word is valid"); |
将返回
一种使用regex match()方法的简单方法:
例如
1 2 3 4 5 6 7 8 9 10 11 | var str ="Hi, Its stacks over flow and stackoverflow Rocks." // It will check word from beginning to the end of the string if(str.match(/(^|\W)stack($|\W)/)) { alert('Word Match'); }else { alert('Word not found'); } |
检查小提琴
注:为了增加区分大小写,用
谢谢
1 2 3 4 5 | var str1 ="STACKOVERFLOW"; var str2 ="OVER"; if(str1.indexOf(str2) != -1){ console.log(str2 +" found"); } |