jquery中的邮政编码验证

时间:2012-07-13 14:38:16

标签: jquery validation

$('#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";
    }

我得到第一个和第二个,即邮政编码的空和长度验证。但是对于第三种情况,数字验证不起作用。任何人帮我获得数字验证 提前谢谢

4 个答案:

答案 0 :(得分:13)

这不是特定于jQuery的,但是你有几个语法错误,你的验证逻辑可以大大简化:

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

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

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

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

答案 1 :(得分: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";
  }
});

答案 2 :(得分:0)

你可以尝试这样的事情 - How to allow only numeric (0-9) in HTML inputbox using jQuery?

如果您只想要正则表达式,请尝试此操作 - jquery: validate that text field is numeric

答案 3 :(得分: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();
  }
}