2013-03-11 33 views
-1

我知道還有其他類似的問題,但我反正問,我試圖驗證一個郵政編碼只有數字輸入,名稱只有輸入字母。我嘗試了一些isNaN,但那並不奏效。這裏是代碼即時嘗試驗證。javascript verify是一個數字或唯一的字母

if(first_name.length < 2){ 
    alert("Please enter your first name."); 
    return false; 
}else if(zip=="" || zip.length < 5){ 
    alert("Please enter a valid zip code."); 
    return false; 

我tryed像這樣

}else if(zip=="" || zip.length < 5 || zip == isNaN){ 
    alert("Please enter a valid zip code."); 
    return false; 
+0

是'/ [a-zA-Z] + /。test(letters_only_string)'和'/ \ d + /。test(num_only_string)'不夠好嗎? – Chad 2013-03-11 21:24:52

+1

不要問! – gdoron 2013-03-11 21:24:53

+0

對這樣的東西使用正則表達式。 – kinakuta 2013-03-11 21:25:05

回答

4

簡單的解決方法:正則表達式

測試5位數

/^\d{5}$/.test(your_string); 

測試,如果只是個字符(至少3):

alert(/^[a-zA-Z] {3,} $ /。test(your_string));

玩它:

http://jsfiddle.net/BAKpY/2/

+0

正則表達式來拯救! – PlantTheIdea 2013-03-11 21:25:19

0

如果只想數字組成一個有效的郵政編碼,你需要比這更要肯定這是有效的。

var ext = null; 
ext = $("#inputId").value.match(/a-zA-Z/)[1]; 
if(ext != null){ 
    alert("Please enter a valid zip code."); 
} 
+0

你顯然在你的代碼段中有錯誤。你將字符串的value屬性與正則表達式匹配,哪個(value屬性)最有可能不存在於字符串中。 – vittore 2013-03-11 21:54:50

+0

實際上,它的工作原理取決於你是否獲得div(.html()。match)或輸入值(.value.match)的值。 .match()[1]在第一次匹配後返回字符串的其餘部分。請記住,這只是一個檢查字母 – Mollo 2013-03-11 22:18:40

+0

你更新了代碼,它仍然是錯誤的。你應該使用'$(..)。get(0).value'或'$(...)。val()' – vittore 2013-03-12 00:46:50

相關問題