在javascript中包含整个字符串中的单词[关闭]

Posted

技术标签:

【中文标题】在javascript中包含整个字符串中的单词[关闭]【英文标题】:Contain word from whole string in javascript [closed] 【发布时间】:2018-11-23 08:06:48 【问题描述】:

我需要比较 jQuery 中字符串中的单词。简而言之,每个单词都在字符串中,那么匹配应该为真,否则不是。什么顺序都无所谓。

例如,如果我有句子I need to Visit W3Schools

如果我搜索 need w3school ==> 匹配 如果我搜索 need go w3school ==> 不匹配 如果我搜索 w3schools visit ==> 匹配 如果我搜索 need go ==> 不匹配

可以是多个单词,例如 1、2 或超过 2。

我用过

var keyword = "I need to Visit W3Schools";

if(keyword.indexOf('need w3school') != -1)
   console.log('Found');
else
    console.log('Not Found');

但它只适用于后续单词而不是其他情况“w3schools visit”。

【问题讨论】:

如果用户没有在单词之间放置空格怎么办?? 首先,请展示您为自己解决此问题而编写的代码。请记住,我们在这里帮助您调试现有代码的问题,而不是为您编写代码。其次,我知道你只是顺便提到了它们,但不要使用 W3Schools。他们的文章经常过时,有时甚至完全是错误的。 MDN 是 html、JS 和 CSS 的更好资源。 纯代码编写请求在 Stack Overflow 上是题外话——我们希望这里的问题与特定编程问题有关——但我们很乐意帮助您自己编写!告诉我们what you've tried,以及您遇到的问题。这也将有助于我们更好地回答您的问题。 这是一个逻辑 javascipt 问题,不是一个 jQuery 问题。 区分大小写重要吗? 【参考方案1】:
//Function CheckForWords accepts the text value
//Splits text value on whitespace, iterates each word,
//Checks if each word is found in text, if not returns false
function CheckForWords(text)
   const words = text.split(' ');

   for(let x = 0; x < words.length; x++)
        if(text.toLowerCase().indexOf(words[x].toLowerCase()) === -1)
            return false;
        
   

   return true;

【讨论】:

以上是关于在javascript中包含整个字符串中的单词[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我的逻辑有啥问题?尝试计算文件中包含特定字符的单词数量

是否有代码对列中包含的相似单词进行分组

jquery验证器避免句子中包含某些单词

万变不离核心基础第五关——改变字符串首字母的大小写/字符串中包含多个单词,改变每个单词首字母的大小写

PHP 中包含特定单词的字符串的条件

如何在分类中包含单词作为数字特征