Javascript 如何在字符串中找到精确的单词?

Javascript 如何在字符串中找到精确的单词?,javascript,Javascript,我试图检查以下字符串是否包含单词“oil”: <script> var input = "Boil oil, soil toil, boiling toiling. Oils; oil: Oil. OIL! (oil)"; // since there are 5 matches -- oil Oil OIL! oil: (oil), I would like this to output: var foundmatches = 5; </script

我试图检查以下字符串是否包含单词“oil”:

<script>
    var input = "Boil oil, soil toil, boiling toiling. Oils; oil: Oil. OIL! (oil)";

    // since there are 5 matches -- oil Oil OIL! oil: (oil), I would like this to output:
    var foundmatches = 5;
</script>

var input=“煮沸油,土壤苦力,煮沸苦力。油;油:油。油!(油)”;
//因为有5根火柴——油!油:(油),我想把这个输出:
var=5;
如果这个词在另一个词中,我不希望它算作匹配词

匹配项后面可以有逗号、句点、分号、感叹号、破折号或括号。文本可以是大写或小写。

请看这里:

这正是你需要的

const regex=/\soil\s/gm;
const str=`煮沸油:土壤油';
让m;
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
log(`Found match,group${groupIndex}:${match}`);
});

}
您可以在启用不敏感标志的情况下使用
\Woil\W
正则表达式


我想你想达到这样的目标

var yourString = "Boil oil, soil toil, boiling toiling. Oils; oil: Oil. OIL! (oil)"
var splittedOne = yourString.split(" ");

for(var i = 0; i < splittedOne.length; i++){ 
      if(splittedOne[i].toLowerCase().includes("oil")) { 
         console.log("contains ...")
      }
}
var yourString=“煮沸的油,土壤的辛劳,煮沸的辛劳。油;油:油。油!(油)
var splittedOne=yourString.split(“”);
对于(var i=0;i
正则表达式
\boil\b
似乎可以工作:

var input=“煮沸油,土壤苦工,煮沸苦工。油;油。油!(油)”;
var regex=/\boil\b/gi;
var found=input.match(regex);

console.log(found)
这将返回字符串中元素数量的长度

//我们的输入字符串
让输入=“煮沸油,土壤劳作,煮沸劳作。油;油。油!”;
//单词oil的正则表达式
var regex=/\boil\b/gi;
//打印包含给定输入中所有单词oil的数组长度

console.log(input.match(regex).length)
您能否添加您自己尝试过的内容以及失败的原因?我相信您可以使用常规表达式找到解决方案。这是唯一有效的答案。但是Javascript的代码是什么呢?