Javascript 检查数组jquery中是否存在多个单词

Javascript 检查数组jquery中是否存在多个单词,javascript,jquery,arrays,Javascript,Jquery,Arrays,必须检查一些句子是否写在文本区。对于ex('Zuzu max capsuni'、'Zuzu max afine')等 我的问题是我不知道;I don’我不知道如何实现这个功能。我试图用这些单词组成一个数组,然后用indexOf()在textarea上查找它们。 我没有成功地做到这一点,特别是如果我用小写字母写的话。有人有解决办法吗?谢谢 <div>Button</div> <textarea></textarea> var words = ['

必须检查一些句子是否写在文本区。对于ex('Zuzu max capsuni'、'Zuzu max afine')等

我的问题是我不知道;I don’我不知道如何实现这个功能。我试图用这些单词组成一个数组,然后用indexOf()在textarea上查找它们。 我没有成功地做到这一点,特别是如果我用小写字母写的话。有人有解决办法吗?谢谢

<div>Button</div>
<textarea></textarea>


var words = ['Zuzu Max capsuni', 'Zuzu max piersici', 'Zuzu Max mere si pere', 'Zuzu Max afine', 'Zuzu Max stracciatella', 'Zuzu max natur'];
var text = $('textarea').val();
$('div').on('click', function(){
    if(text.indexOf(words)){
        console.log('match');
    }
});
按钮
var words=['Zuzu Max capsuni','Zuzu Max Piersci','Zuzu Max mere si pere','Zuzu Max afine','Zuzu Max stracciatella','Zuzu Max natur'];
var text=$('textarea').val();
$('div')。在('click',function()上{
if(文字索引(文字)){
console.log('match');
}
});

忘记使用lodash或类似的库来放置:


或者,如果您对使用ES7/Babel感到满意:

您需要遍历
单词
数组,并根据textarea字符串逐个检查它们。代码中的另一个问题是,如果未找到字符串,
indexOf
将返回
-1
,或者返回一个表示搜索字符串位置的
数字

var textarea = $('textarea');
var words = ['Zuzu Max capsuni', 'Zuzu max piersici', 'Zuzu Max mere si pere', 'Zuzu Max afine', 'Zuzu Max stracciatella', 'Zuzu max natur'];

$('div').on('click', function(){
    var text = textarea.val();

    for (var i = 0, len = words.length; i < len; i++) {
        if (text.indexOf(words[i]) > -1) {
            console.log('match', words[i]);
        }
    }
});
var textarea=$('textarea');
var words=['Zuzu Max capsuni','Zuzu Max Piersci','Zuzu Max mere si pere','Zuzu Max afine','Zuzu Max stracciatella','Zuzu Max natur'];
$('div')。在('click',function()上{
var text=textarea.val();
for(var i=0,len=words.length;i-1){
console.log('match',单词[i]);
}
}
});
你可以在这里看到一把小提琴:


不区分大小写:

我假设数组“word”包含要检查的句子 因为

首先,把所有句子改成小写或大写。你可以用下划线 为此,你也可以自己做

见下文:

var words=['Zuzu Max capsuni','Zuzu Max piersci','Zuzu Max mere si pere';
//使用下划线。见链接:http://underscorejs.org/#map
wordsLowerCase=u2;.map(单词,函数(单词){
返回word.toLowerCase();
});
var text=$('textarea').val().toLowerCase();
$('div')。在('click',function()上{
wordsLowerCase.forEach(函数(word){
if(文本索引of(word)>-1){
console.log('match');
}
});

});你正在做<代码>字符串.索引(数组)
。。。必须做一个数组循环,并使用
indexOf
lastinexof
检查每一个数组,如果它们不相等,则重复元素,但如何每3个单词或类似的内容检查一次?我将有3-5个单词的空间,并且必须以这种方式进行检查。还请注意,您需要在点击手柄中获取textarea值。它正在工作!现在有道理了!谢谢还有一种方法可以验证小写吗?@codetheweb如果要使搜索不区分大小写,只需将
单词
文本
转换为小写即可。我用最新的小提琴更新了答案。非常感谢你。我花了一天的时间来完成这件事。