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";
    }

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

4

4 回答 4

13

这并不是真正的 jQuery 特定的,但是您有几个语法错误,并且您的验证逻辑可以大大简化:

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

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

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

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

于 2012-07-13T14:46:21.783 回答
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";
  }
});
于 2012-07-13T14:42:31.657 回答
0

您可以尝试这样的事情 -如何使用 jQuery 在 HTML 输入框中只允许数字(0-9)?

如果你只想要正则表达式,试试这个 - jquery: validate that text field is numeric

于 2012-07-13T14:42:50.050 回答
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();
  }
}
于 2015-06-20T05:27:06.160 回答