首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery验证的帮助和基于前三个数字的Zip代码限制

jQuery验证的帮助和基于前三个数字的Zip代码限制
EN

Stack Overflow用户
提问于 2011-02-17 22:20:09
回答 3查看 1.8K关注 0票数 0

我假设这里需要一个正则表达式?

我有一个邮政编码字段,邮政编码必须在芝加哥的城市范围内。幸运的是,所有的邮政编码都从606开始。因此,我需要轮询输入,以确保输入的邮政编码为5位数字,并以编号606开头:

我的输入足够基本:

代码语言:javascript
运行
复制
<label for="dzip"><span class="red">&hearts;&nbsp;</span>Zip:</label>
<input name="attributes[address_zip]" id="dzip" type="text" size="30" class="required zip-code" />

然后我的城市剧本就很简单了。我只需要把它应用于邮政编码:

代码语言:javascript
运行
复制
    jQuery.validator.addMethod("Chicago", function(value) {
    return value == "Chicago";
}, '**Recipient must reside in Chicago City Limits**');

如果我展示电话号码(US)的插件功能,可能会有所帮助。基本上,我需要把它翻译成zip:

代码语言:javascript
运行
复制
    jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
    phone_number = phone_number.replace(/\s+/g, "");
    return this.optional(element) || phone_number.length > 9 && phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");

这部分是什么意思?

代码语言:javascript
运行
复制
phone_number.replace(/\s+/g, "")

我直接从验证站点上的一个例子中删除了电话部分。

的最终答案来自于这里所有的伟大(快速)输入:

代码语言:javascript
运行
复制
    jQuery.validator.addMethod("zip-code", function(zip_code, element) {
    zip_code = zip_code.replace(/\s+/g, "");
    return this.optional(element) || zip_code.length == 5 && zip_code.match(^606[0-9]{2}$);
}, "Please specify a City of Chicago Zip Code");
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-17 22:23:54

对于长度,请使用.length性质

代码语言:javascript
运行
复制
if($('#dzip').val().length != 5)
  return false;

对于606,使用substr法

代码语言:javascript
运行
复制
if($('#dzip').val().substr(0,3) != 606)
  return false;

组合

代码语言:javascript
运行
复制
$('#dzip').change(function(){
  var val = $(this).val();
  if(val.length != 5 || val.substr(0,3) != 606)
    return false; //not valid
  else
  //do stuff here
})

尝试如下:

代码语言:javascript
运行
复制
jQuery.validator.addMethod("chicago", function(zip, element) {
    zip = zip.replace(/\s+/g, "");
    return this.optional(element) || zip.match("^606[0-9]{2}$");
}, '**Recipient must reside in Chicago City Limits**');

以上代码可理解为

  • 将芝加哥方法添加到验证器插件中
  • 当该方法被调用时,删除所有空白字符
  • 那么,如果字段不是必需的并且是空的
  • 或者它是必需的,而不是空的,并且长度是5位数。
  • 前三个字符是606
  • 返回true
  • 否则返回假
票数 5
EN

Stack Overflow用户

发布于 2011-02-17 22:22:43

看看这个jQuery插件

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

票数 0
EN

Stack Overflow用户

发布于 2011-02-17 22:24:47

您可以使用此正则表达式"6060-9“,并查看是否可以匹配。然后检查输入是否为五位数,因为我认为这个正则表达式也将匹配606111。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5035415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档