0

アイテムのリストを表示しようとしています...

アイテム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
}
4

3 に答える 3

2

One way would be to use a regex.

var matches = "there is a boy".match(/[ab]/);
if (matches === null) {
   // neither a nor b was present
}

If you need to construct a regex from strings, you can do it like

var matches = "there is a boy".match(new RegExp("[ab]"));

If you have an array of strings like ['a', 'b'] then you need to do something like

var pattern = yourArray.join('');
var regex = new RexExp(pattern);

here we construct a string which is a pattern, and then create a new regex based on that pattern.

于 2012-08-10T11:44:22.890 に答える
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
}
于 2012-08-10T11:47:46.963 に答える
1

[MDN]indexOfを利用した別の使用方法は次のとおりです。Array#every

var val = v.value;
if(exclusions.every(function(x) { return val.indexOf(x) === -1 })) {
    // val does not contain any string in `exclusions`
}
于 2012-08-10T11:56:07.997 に答える