JavaScript/jQuery-如何检查字符串是否包含特定的单词

JavaScript/jQuery-如何检查字符串是否包含特定的单词,javascript,jquery,Javascript,Jquery,在PHP中,我们可以使用上面的代码来检查字符串是否包含特定的单词,但是如何在JavaScript/jQuery中执行相同的功能呢?您可以使用indexOf来完成此操作 $a = 'how are you'; if (strpos($a,'are') !== false) { echo 'true'; } Edit:这是一个古老的答案,每隔一段时间就会有人投票,因此我想我应该澄清一下,在上面的代码中,if子句根本不是必需的,因为表达式本身是一个布尔值。这是一个更好的版本,你应该使用它 v

在PHP中,我们可以使用上面的代码来检查字符串是否包含特定的单词,但是如何在JavaScript/jQuery中执行相同的功能呢?

您可以使用indexOf来完成此操作

$a = 'how are you';
if (strpos($a,'are') !== false) {
    echo 'true';
}
Edit:这是一个古老的答案,每隔一段时间就会有人投票,因此我想我应该澄清一下,在上面的代码中,
if
子句根本不是必需的,因为表达式本身是一个布尔值。这是一个更好的版本,你应该使用它

var a = 'how are you';
if (a.indexOf('are') > -1) {
  return true;
} else {
  return false;
}
ECMAScript 2016中的更新:

var a = 'how are you';
return a.indexOf('are') > -1;

您正在寻找indexOf函数:

var a = 'how are you';
return a.includes('are');  //true

如果您正在寻找精确的单词,并且不希望它与“噩梦”(这可能是您所需要的)匹配,则可以使用正则表达式:

if (str.indexOf("are") >= 0){//Do stuff}
如果只想查找字符“are”,请使用
indexOf

如果要匹配任意单词,必须根据单词字符串以编程方式构造RegExp(正则表达式)对象本身,并使用
test

indexOf
/
includes
不应用于查找整个单词: 它不知道查找单词或仅查找单词的一部分之间的区别:

“有一个词”。indexOf('wor')//6
“有一个词”。includes('wor')//true

检查字符串中是否有单个单词(整个单词) 找到一个真正完整的单词,而不仅仅是该单词的字母在字符串中的某个位置

const wordInString=(s,word)=>new RegExp('\\b'+word+'\\b','i')。测试;
//测验
[
'',//对
'',//对
'did',//true
'id',//flase
“哟”//flase
“你”//true
“你不是”//对
].forEach(q=>console.log(
wordInString('你知道或不知道为什么?',q)
))
console.log(
wordInString(‘你知道为什么吗?’,‘你’)//对
)
这将

/\bare\b/gi

\b = word boundary
g = global
i = case insensitive (if needed)
返回
false
,当此

/\bword\b/.test("Thisword is not valid");

将返回
true

您可能希望在JS中使用include方法

/\bword\b/.test("This word is valid");
PS:includes区分大小写。

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');
}
var str1=“STACKOVERFLOW”;
var str2=“结束”;
if(str1.indexOf(str2)!=-1){
console.log(str2+“找到”);

}
使用Regex match()方法是一种简单的方法:-

比如说

var sentence = "This is my line";
console.log(sentence.includes("my"));
//returns true if substring is present.
检查

注意:要添加区分大小写的属性,请使用
/(^ |\W)堆栈($|\W)/i

感谢javascript中的includes()方法可用于确定字符串是否包含特定单词(或指定位置的字符)。它区分大小写

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');
}

可能重复的和可能重复的非常糟糕的答案。这将失败:“你好吗”@vsync为什么说“回答不好”?因为他删除了IF语句?那么,你对预编辑有什么看法?(编辑前)@Shafizadeh-不是因为
if
。您是否阅读了我的答案,以了解为什么在这种情况下使用
indexof
是不好的?为什么你甚至认为这是因为如果<代码>如果无论如何?我有一个机会,我需要2检查“你好吗?”,“你疯了吗?”包含字符串“是”(不区分大小写),而不包含“意识很重要”。在这种情况下,此函数非常有用@vsync:)请确保“word”不包含任何正则表达式元字符,否则匹配将无效。单词中的任何正则表达式元字符都必须转义。+1用于添加使单词成为变量的方法。我找到的大多数其他答案都提供了一个固定模式……我读了你的答案,它可能很好:-)+1.顺便说一句,我认为使用
indexOf
也很好,因为和是两位专业人士的两个伟大答案,他两人都使用了
indexOf
@Shafizadeh-你提到的那些答案不适用于这个具体问题,在这个问题上,
indexOf
解决方案将失败,无论多么“专业”那些给出这些答案的人是。谢谢!这是一个简单的解决方案