javascriptのincludes()は大文字と小文字を区別しません 質問する

javascriptのincludes()は大文字と小文字を区別しません 質問する

ループして渡された別の文字列と比較する必要がある文字列の配列があります。

var filterstrings = ['firststring','secondstring','thridstring'];
var passedinstring = localStorage.getItem("passedinstring");

for (i = 0; i < filterstrings.lines.length; i++) {
    if (passedinstring.includes(filterstrings[i])) {
        alert("string detected");
    }
}

var passedinstringまたはのような文字列がある場合、フィルタリング時に大文字と小文字の区別が無視されるようにするには (できれば正規表現を使用して) どうすればよいですFirsTsTriNgfiRSTStrING?

ベストアンサー1

作成することができます正規表現filterstrings最初から

var filterstrings = ['firststring','secondstring','thirdstring'];
var regex = new RegExp( filterstrings.join( "|" ), "i");

そこtestpassedinstring

var isAvailable = regex.test( passedinstring );

テスト実装は次のとおりです。

// Take care to escape these strings!
// If they are user-input or may contain special regex characters (such as "$" or "."), they have to be escaped.
var filterStrings = ['one','two','three'];
var regex = new RegExp(filterStrings.join( "|" ), "i");

var sentences = [
  "one", // true
  "OnE", // true
  "a rabbit", // false
  "and then two rabbits", // true
  "standing", // false
  "prone", // true
  "AoNeAtWo", // true
];
sentences.forEach(sentence => {
  console.log(
    regex.test(sentence) ? '✅ match:' : '❌ not a match:',
    "'" + sentence + "'",
    );
});

おすすめ記事