2012-07-13 133 views
1
$('#create_membership').click(function() { 
    var zip = $('#zip').val(); 

    else if (zip == ''){ 
     errorMessage = "*Zipcode required!"; 
    } 
    else if ((zip.length)< 5 || (zip.length)>5){ 
     errorMessage = "*zipcode should only be 5 digits"; 
    } 
    else if (zip =("^[0-9]+$")){ 
     errorMessage = "*zipcode should be numbers only"; 
    } 

我得到第一和第二即对于ZIP code.but为3的情况下空和长度的验证,验证数量不working.can任何一个可以帮助我获得数验证 在此先感谢邮政编码验证

+1

1.外观到jQuery的验证插件,写这一切是自己不必要的疯狂2.看看这个页面,看看正则表达式在JavaScript中是如何工作的:HTTPS://developer.mozilla。 org/en/JavaScript/Guide/Regular_Expressions(提示:您目前只是简单地检查zip是否等于字符串“^ [0-9] + $”没有对该正则表达式进行评估)。当你阅读它时,你也可以简单地执行parseInt(zip,10),如果它不是一个有效的数字,你的长度检查会处理它。 – 2012-07-13 14:41:42

+0

您正在使用正则表达式。你必须使用zip.match(/^[0-9] + $ /)到你的ifelse函数 – user1269989 2012-07-13 14:46:40

回答

3

您需要像处理函数一样处理正则表达式,否则只需将值分配给“zip”即可。请看下图:

$('#create_membership').click(function() { 
    var zip = $('#zip').val(); 
    var reg = /^[0-9]+$/; 
    else if (zip == ''){ 
    errorMessage = "*Zipcode required!"; 
    } 
    else if ((zip.length)< 5 || (zip.length)>5){ 
    errorMessage = "*zipcode should only be 5 digits"; 
    } 
    else if (!reg.test(zip)){ 
    errorMessage = "*zipcode should be numbers only"; 
    } 
}); 
+0

非常感谢这个代码工作正常 – user1334095 2012-07-13 14:59:11

+1

你应该接受答案然后:) – Developer 2012-07-13 15:00:11

13

这是不是真的jQuery的特异性,但你有几个语法错误和您的验证逻辑可以大大简化:

$('#create_membership').click(function() 
{ 
    var zip = $('#zip').val(); 

    var zipRegex = /^\d{5}$/; 

    if (!zipRegex.test(zip)) 
    { 
     // trigger error 
    } 
    else 
    { 
     // success! 
    } 
}); 

我应该注意验证邮政编码不一定只是che为5个数字创作。我也会尝试在某处找到一个列表,并确保他们输入的是有效的美国邮政编码。此外,您可能还希望允许使用4位补充代码。

+0

如果你想检查5位美国您可以这样做:'/^\ d {5}( - \ d {4)?$ /' – 2012-08-02 20:05:39

+1

上面的正则表达式有一个错字(出于某种原因,我无法编辑它)。正确的格式应该在'4'之后包含一个'}' - '/^\ d {5}( - \ d {4})?$ /' – 2012-12-17 20:05:47

0

号验证

var data=$('#zip').val(); 
var len=data.length; 
var c=0; 
for(var i=0;i<len;i++) 
{ 
    c=data.charAt(i).charCodeAt(0); 
    if(c <48 || c >57) 
    { 
    $('.error').show(); 
    event.preventDefault(); 
    break; 
    } 
    else 
    { 
    $('.error').hide(); 
    } 
}