Javascript包含特定的大小写

Javascript包含特定的大小写,javascript,string,filter,include,indexof,Javascript,String,Filter,Include,Indexof,在我的例子中,我必须只保留包含“eat”的标题(或字符串),因此“eating”也可以,问题在于“cheat”包含“eat”,但它通常会返回上下文之外的标题,同时我还应该保留“cheat-fine”一词 如果不是因为“作弊”这个词本身,我可以用一个If:.includes(“eat”)| |。includes(“作弊餐”),我就不用它了。但不幸的是,“作弊”之后也没有“吃饭”,所以我如何排除“作弊”或“作弊”作为单词,如果在本例中没有“吃饭”的话 我可以做一个丑陋的if语句链,但我很确定我缺少了

在我的例子中,我必须只保留包含“eat”的标题(或字符串),因此“eating”也可以,问题在于“cheat”包含“eat”,但它通常会返回上下文之外的标题,同时我还应该保留“cheat-fine”一词

如果不是因为“作弊”这个词本身,我可以用一个If
.includes(“eat”)| |。includes(“作弊餐”)
,我就不用它了。但不幸的是,“作弊”之后也没有“吃饭”,所以我如何排除“作弊”或“作弊”作为单词,如果在本例中没有“吃饭”的话

我可以做一个丑陋的if语句链,但我很确定我缺少了一些高级的
includes
js方法变体,它们可以更优雅地解决问题

编辑示例

     let vid = [], vidEat = [];
     for(let j=0; j < vidData.items.length; j++){
          if (vidData.items[j] != undefined){
            vid.push(vidData.items[j].snippet.resourceId.videoId)

            if (/\beat|\bmeal/i.test(vidData.items[j].snippet.title)){
              vidEat.push(vidData.items[j].snippet.resourceId.videoId)
            }
          }
        }
“我今天吃什么”//接受

“我如何欺骗..”//EXCLUDE

“我的饮食习惯是什么”//ACCEPT

“本周最佳作弊餐”//接受

“年度最佳作弊餐”//接受

EDIT2完整迭代(带解决方案)

     let vid = [], vidEat = [];
     for(let j=0; j < vidData.items.length; j++){
          if (vidData.items[j] != undefined){
            vid.push(vidData.items[j].snippet.resourceId.videoId)

            if (/\beat|\bmeal/i.test(vidData.items[j].snippet.title)){
              vidEat.push(vidData.items[j].snippet.resourceId.videoId)
            }
          }
        }
让vid=[],vidEat=[];
对于(设j=0;j
您可以使用正则表达式匹配以
eat
开头的单词或以
mean
开头的单词:

const probablyRelatedTitles = titles.filter(
  title => /\beat|\bmeal/i.test(title)
);

匹配作弊餐的逻辑是什么?
eat
中有一个
cheat
,应该排除它,对吗?不应该排除它,因为字符串也有“meat”,但是如果单独发现“cheat”,则应该排除它。我将编辑以添加示例,因此我想建议使用。在这些情况下使用过滤器,而不是包含\b表示以开始,并且|相当于js | |。probablyRelatedTitles返回一个布尔值?听起来好像有一个字符串数组作为输入,因此
.filter
将生成一个数组,其中只包含通过测试的字符串。正则表达式是在字符串本身上执行的,它将替换
.includes
。如果您只有一个字符串要检查,您可以单独执行
/\beat |\bmeal/i.test(title)
。哦,不,我已经在重复标题,所以我只需要检查当前标题中的“eat”和“meat”,如:.items[i].snippet.title。我应该在你建议的正则表达式中使用.includes吗?它在节点中工作吗?因为我在直接使用regex之前遇到了一些问题,比如在node before中使用regex,而您可以执行类似
/\beat |\bmeal/I.test(.items[I].snippet.title)
,首先使用
.filter
可能是一种更具语义的方法,这取决于更广泛的上下文。是的,正则表达式在NodeI中起作用。我不知道为什么它也给我起了“create”和“reatreat”的标题,这两个词都不是以“eat”开头,而是包含它。我将用完整的迭代进行编辑