我正在尝试显示项目列表...
项目A. 项目B. 项目C. 项目D
我可以告诉代码不显示任何包含A的项目,如下所示:
exclusions = new Array("A")
if (v.value.indexOf(exclusions) > -1) {
}
else {
DO SOMETHING
}
我遇到的问题是,如果我希望它排除多个,就像这样:
exclusions = new Array("A", "B")
if (v.value.indexOf(exclusions) > -1) {
}
else {
DO SOMETHING
}
答案 0 :(得分:2)
一种方法是使用正则表达式。
var matches = "there is a boy".match(/[ab]/);
if (matches === null) {
// neither a nor b was present
}
如果你需要从字符串构造一个正则表达式,你可以这样做
var matches = "there is a boy".match(new RegExp("[ab]"));
如果您有像['a', 'b']
这样的字符串数组,那么您需要执行类似
var pattern = yourArray.join('');
var regex = new RexExp(pattern);
这里我们构造一个模式的字符串,然后根据该模式创建一个新的正则表达式。
答案 1 :(得分:1)
以伪代码方式回答:
exclusions = new Array("A", "B");
exclusion_found = false;
for (int i=0; i< exclusions.length; i++) {
if (v.value.indexOf(exclusions[i]) > -1) {
exclusion_found = true;
break;
}
}
if (!exclusion_found) {
DO SOMETHING
}
答案 2 :(得分:1)
以下是使用indexOf
的另一种方式var val = v.value;
if(exclusions.every(function(x) { return val.indexOf(x) === -1 })) {
// val does not contain any string in `exclusions`
}
:
{{1}}