在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中包含整个字符串中的单词[关闭]的主要内容,如果未能解决你的问题,请参考以下文章