私は、値が約4値の1つ(以下の例では3)と一致する場合にtrueを返すjavascript関数を作成しています。問題は、私はちょうど2つの値を持っているとき、関数が正しく動作しますが、3番目を追加するとコードが壊れます。elem.value.matchを使った複数のOR演算子
私はJavaScriptには新しく、これを行うにはもっと良い方法があると思いますか?私は検索しようとしましたが、まだ何も見つかりませんでした。
ご迷惑をおかけして申し訳ありません。
function isValid(elem, helperMsg){
var sn6 = /[sS][nN]6/;
var sn5 = /[sS][nN]5/;
var sn38 = /[sS][nN]38/;
if(elem.value.match(sn6 || sn5 || sn38)){
//do stuff
return true;
}else{
return false;
}
}
編集:
はここ配列と私の第二の試みです:
function isLocal(elem, helperMsg){
var validPostcodes=new Array();
validPostcodes[0]= /[wW][rR]12/;
validPostcodes[1]= /[cC][vV]35/;
validPostcodes[2]= /[sS][nN]99/;
validPostcodes[3]= /[sS][nN]6/;
validPostcodes[4]= /[sS][nN]5/;
validPostcodes[5]= /[sS][nN]38/;
validPostcodes[6]= /[oO][xX]29/;
validPostcodes[7]= /[oO][xX]28/;
var i = 0;
for (i = 0; i < validPostcodes.length; ++i) {
if(elem.value.match(validPostcodes[i])){
// do stuff
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}
}
答えをいただきありがとうございます。もう少し読んでいただき、それを解剖してみましょう。残念ながら、snで始まらない他のポストコードが存在するため、正規表現の回答は機能しません。 – user319940
ああ。その場合、私はおそらく配列のアプローチに行きます。特に何かがあれば理解を助ける必要があります、私に知らせてください、私は喜んで私の答えを明確に編集します。 – Corbin
ありがとう!私は次の時間にこれを試していますので、あなたの答えを知っている/受け入れるようにしてください。 – user319940