如何在字符串中查找字符串数组?

时间:2016-11-08 19:58:43

标签: javascript jquery angularjs arrays string

我想在字符串中搜索多个字符串,如果在其中找到任何字符串,则返回true,否则返回false,如下所示:

var s = "thing1 thing2"
s.contains(["thing1","thing44444"]) // true
s.contains("1") // true
s.contains("x") // false

这是我到目前为止所拥有的,但它变得更加混乱,并没有真正发挥作用:

String.prototype.contains = function(xv) {
    var t = this
    if(xv.isString()){ // isString/isArray are functions I made elsewhere in my code, they work.
        if(t.indexOf(xv) > -1)
            return true;
    } else if(xv.isArray()) {
        if(xv.contains(t)){
            return true
        }
        for(v in xv){
            if(t.indexOf(xv[v]) > -1){
                return true
            }
        }
    } else {
        return false
    }
}

截至目前,如果它通过undefined循环而没有找到任何内容,它将返回for。在return false循环后我有for,但它会在for完成之前运行。

我觉得这样做更容易。

我已经尝试How do you search multiple strings with the .search() Method?,但我无法将数组发送到.search()

框架我使用:angular 1.5.8,jquery 1.11.1

1 个答案:

答案 0 :(得分:4)

您可以使用Array.someString.indexOfString.includes



var s1 = "thing1 thing2";
var s2 = "Hello Kitty";

var r1 = ["thing1","thing44444"].some( x => s1.includes(x));
var r2 = ["Travis","Heeeeeeter"].some( x => s2.includes(x));

console.log(r1, r2); // true, false