首页 新闻 搜索 专区 学院

如何用简洁的js代码判断一个字符串是否包含一个数组中的任一元素

0
悬赏园豆:100 [已解决问题] 解决于 2017-02-08 11:32

丑陋的js代码实现如下:

var title = "AA";
if (title.indexOf("A") > -1 ||
    title.indexOf("B") > -1 ||
    title.indexOf("C") > -1 ||
    title.indexOf("D") > -1 ||
    title.indexOf("E") > -1 ||
    title.indexOf("F") > -1) {
        return false;
}

C#中的简洁实现如下:

new string[] { "A", "B", "C", "D", "E", "F" }.Any(s => title.IndexOf(s) > -1);

请问js中如何简洁实现?

js
dudu的主页 dudu | 高人七级 | 园豆:39014
提问于:2017-02-07 15:45
< >
分享
最佳答案
0

['A','B','C','D','E','F'].filter(n=>title.indexOf(n)>-1).length>0

收获园豆:80
刘宏玺 | 专家六级 |园豆:14004 | 2017-02-08 10:37

赞! .length==0 要改为 .length>0 ,改一下就可以结帖了。

dudu | 园豆:39014 (高人七级) | 2017-02-08 11:12

这是ES6的写法

dudu | 园豆:39014 (高人七级) | 2017-02-09 17:56

不用ES6需要这么写:

['A','B','C','D','E','F'].filter(function(data){ return title.indexOf(data) > -1; }).length > 0;
dudu | 园豆:39014 (高人七级) | 2017-02-09 18:10
其他回答(3)
1

jQuery

$.inArray(value, array)

 

js

Array.prototype.contains = function(obj) {
    var i = this.length;
    while (i--) {
        if (this[i] === obj) {
            return true;
        }
    }
    return false;
}

 

收获园豆:10
Cat Qi | 园豆:761 (小虾三级) | 2017-02-07 16:09
0

路过,支持楼上

lly0 | 园豆:202 (菜鸟二级) | 2017-02-07 16:29
0

/[ABCDEF]/.test("AA")

收获园豆:10
长蘑菇星人 | 园豆:1832 (小虾三级) | 2017-02-07 17:30

这里的ABCDEF分别代表的是一个字符串,不是一个字符。

支持(0) 反对(0) dudu | 园豆:39014 (高人七级) | 2017-02-07 17:32

@dudu: /abc|def/.test("abd");2333 (逃

支持(0) 反对(0) 长蘑菇星人 | 园豆:1832 (小虾三级) | 2017-02-07 17:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册