JavaScript,如何检查字符串的一部分是否为数组中的一个字符串

时间:2019-02-25 16:56:15

标签: javascript arrays node.js string

所以,我有一个带有字符串的数组。现在,我要检查一个字符串是否在数组中至少包含一个thoose字符串。

{
    "filter" : [
        "ABDC",
        "ADBAC"
    ]
}

var string1 = "ABCD";
var string2 = "ABDC sample";
var string3 = "ADBACABDC";

现在我想要一个函数,该函数返回truestring2上的string3false上的string1

在node.js上实现此目标的最佳方法是什么?

4 个答案:

答案 0 :(得分:1)

使用Array.some,对于每个条目,检查字符串includes是否为过滤器:

const data = {
  "filter" : [
      "ABDC",
      "ADBAC"
  ]
}

var string1 = "ABCD";
var string2 = "ABDC sample";
var string3 = "ADBACABDC";

const check = (arr, string) => {
  return arr.some(e => string.includes(e));
}

console.log(check(data.filter, string1));
console.log(check(data.filter, string2));
console.log(check(data.filter, string3));

答案 1 :(得分:0)

会是这样的

function checkString(stringsArray, stringToCheck) {
   return !!stringsArray.find((str) => stringToCheck.indexOf(str) > -1);
}

然后,您需要使用过滤器和要检查的每个字符串来调用此函数:

const filter = [
        "ABDC",
        "ADBAC"
    ];

var string1 = "ABCD";
var string2 = "ABDC sample";
var string3 = "ADBACABDC";

checkString(filter, string1);
checkString(filter, string2);
checkString(filter, string3);

答案 2 :(得分:0)

您可以使用someRegExp

dir=/usr/local/bin
sudo update-alternatives --install $dir/sf somefile $dir/somefile.sh 10

答案 3 :(得分:0)

尝试一下:

var obj = { "filter" : [ "ABDC", "ADBAC" ]  } ;

function test(str) {
  for ( var i = 0; i < obj["filter"].length; i++ ) {
    patt = new RegExp(obj["filter"][i]) ;
    if ( patt.test(str) ) break;
  }
  console.log(str + " ==> " + patt.test(str) )
}

test( "ABCD" ) ;
test( "ABDC sample" ) ;
test( "ADBACABDC" ) ;