0
我一直在寫一個JavaScript函數,如果該值匹配大約4個值之一(在下面的例子中只是3)返回true。問題是,當我只有兩個值時,函數可以正常工作,但是添加第三個值會破壞代碼。多個OR運算符與elem.value.match
我對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