Javascript:如果数组中的所有字符串都存在于另一个字符串中,则返回true

时间:2015-09-07 02:46:50

标签: javascript arrays string comparison

我必须检查变量中的字符串是否全部 数组中的字符串。我很简单,但我不能让它工作!我已经尝试了很多东西但是很复杂而且没有真正起作用。我正在寻找一些建议。

类似的东西:

var myArray = ["cat","dog","bird"];
var myString = "There is a cat looking the bird and a dog looking the cat";
var myString2 = "There is a cat and a dog looking one each other";

myArray和 myString 必须为true且 true 且myArray和 myString2 必须 false

我正在做这样的事情:

var selector = "dir.class#id";
var code = '<div id="id" class="class"></div>';
var tokens = selector.split(/[\.,#]+/);

for (var i = tokens.length - 1; i >= 0; i--) {
    var counter = [];
    if (code.indexOf(tokens[0]) > -1 ) {
        counter.concat(true);
    }
}

谢谢!

5 个答案:

答案 0 :(得分:2)

你可以做类似下面的事情

var arePresentInText = function (text,words) {
    return words.every(function(word){
        return text.indexOf(word) > -1;
    });
}

console.log(arePresentInText(myString,myArray)); //prints true
console.log(arePresentInText(myString2,myArray)); //prints false

答案 1 :(得分:2)

这应该有效:

 var myArray = ["cat","dog","bird", "cat"];
 var myString = "There is a cat looking the bird and a dog looking the cat";
 var myString2 = "There is a cat and a dog looking one each other";

 function checkValue(arr, str){
    var cnt = 0;
    for(i in arr){
        var val = arr[i];
        if(str.indexOf(val) > -1) cnt++;
    }

    return (arr.length == cnt) ? true : false;
 }

 console.log(checkValue(myArray, myString));

答案 2 :(得分:1)

function checkContainStr(arr, str){
for(i in arr){
    if(str.indexOf(arr[i]) == -1)
     return false;
}
 return true;
} 

答案 3 :(得分:0)

尝试使用此功能:

function arrayElementsInString(ary, str){
  for(var i=0,l=ary.length; i<l; i++){
    if(str.indexOf(ary[i]) === -1){
      return false;
    }
  }
  return true;
}

答案 4 :(得分:0)

如果要在单词结尾处匹配字符串,但不一定要在开头处匹配,则需要使用正则表达式或其他处理。

使用 indexOf 进行检查会匹配单词中任何位置的字符序列,而不是最后的字符序列。请考虑以下内容,它们最后匹配字符串或整个单词:

JFrame