正規表現を使用して、大文字と小文字に関係なく、ユーザーが指定した値が承認された値のリストに存在するかどうかを判断したいと思います。現在の JavaScript コードの簡略化された例を次に示します。これは、「JAN」、「Jan」、および「jan」に一致するように機能しますが、「jAN」、「jAn」などには一致しません。
var validateValue = function(field, patternName){
"use strict"; //let's avoid tom-foolery in this function
var pattern="";
switch(patternName)
{
case "MMM": //month names only
pattern=/^JAN|Jan|jan*$/;
break;
// other cases and default follow in real code
}
if ( (!field.value.length) || pattern.test(field.value) ){
//we're good (the field is blank or passes the regular expression test); remove field's error message, enable the submit button
}
else {
//problems; let's show the error message and put focus back on problem field, disable the submit button
}
};
「 RegexOptions列挙を使用せずに大文字と小文字を区別しない正規表現」から学んだことに基づいてpattern=/^
(?i)試しましたが、それではうまくいきません(「Uncaught SyntaxError:無効な正規表現...」)JAN|Jan|jan*$/;
大文字と小文字を区別しない値がリスト項目に一致するかどうかを評価するための正しい正規表現は何ですか?