2013-03-11 27 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

相关问题