jQuery:验证美国邮政的正则表达式不起作用

     2023-05-08     212

关键词:

【中文标题】jQuery:验证美国邮政的正则表达式不起作用【英文标题】:jQuery: Regex to validate US postal doesn't work 【发布时间】:2022-01-14 07:55:06 【问题描述】:

使用下面的代码,似乎没有任何效果。当我在 Zipcode 字段中键入非数字值时,没有警报消息。请帮我确定问题。

$("input:text[name='address_1[zip]']").keyup(function(e) 
  var charCode = (e.which) ? e.which : event.keyCode
  if (String.fromCharCode(charCode).match(/^\d5(?:[-\s]\d4)?$/)) 
    console.log("Please enter a number for zip code");
    $("input[name='address_1[zip]']").val("");
    return false;
  
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

<input type="text" name="address_1[zip]" />

【问题讨论】:

【参考方案1】:

这行得通 - 我们需要超时

const re = /(^\d5$)|(^\d5-\d4$)/;
$("input:text[name='address_1[zip]']").on("blur", function(e)  
  const $this = $(this);
  if (this.value && !re.test(this.value)) setTimeout(function()  $this.val(""); $this.focus() ,100);
);
.red  border: 1px solid red  
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

<input type="text" name="address_1[zip]" /><input type="text" name="city" />

【讨论】:

是的,它确实有效。但它不接受 57401 - 57402 作为有效的美国邮政编码?你能给我一个完美的正则表达式来验证所有美国邮政编码吗 @PKTG 请查看更新 它没有将 57401 - 57402 视为有效的 ZIP。我自己查了【参考方案2】:

您的正则表达式将只接受美国邮政编码的 5 位数字我不知道其余的分组正则表达式:(?:[-\s]\d4),它与您的需要无关。 我为你更正了代码:

jQuery("input:text[name='address_1[zip]']").keyup(function(e) 
    //var charCode = (e.which) ? e.which : event.keyCode    
    // no needed!
    if (!$(this).val().match(/^\d5(?:[-\s]\d4)?$/)) 
        alert("Please enter a number for zip code");
        jQuery("input[name='address_1[zip]']").val("");
        return false;                        
        
);

【讨论】:

谢谢约翰,您的代码是否涵盖所有美国邮政编码? 我没有更改正则表达式部分,如果您复制了 US Zip 的正则表达式,那么它将起作用 正则表达式有问题,当我输入数字时,它会提示说请输入邮政编码的数字 因为事件设置为keyup,每次用户写入,事件调用,如果数字长度.change()是个好主意 谢谢,它正在工作。但是,如果拉链错误,焦点会随着变化而消失。如果输入错误,如何让焦点保持在相同的输入上?

使用正则表达式验证加拿大邮政编码

】使用正则表达式验证加拿大邮政编码【英文标题】:ValidateCanadianPostalCodeusingregex【发布时间】:2012-06-2408:49:26【问题描述】:我编写了一个JavaScript来。但是,它似乎不起作用:JavaScript如果语句:if(myform.zip.value==""||myform.zip.valu... 查看详情

美国邮政编码和加拿大邮政编码的 Angular ng-pattern 正则表达式代码 [关闭]

】美国邮政编码和加拿大邮政编码的Angularng-pattern正则表达式代码[关闭]【英文标题】:Angularng-patternregexcodeforUSZipcodesandCanadianPostalcodes[closed]【发布时间】:2014-01-1723:19:10【问题描述】:谁能帮帮我?我正在寻找一些正则表达式... 查看详情

调试后正则表达式不起作用

】调试后正则表达式不起作用【英文标题】:Regularexpressionnotworkingafterdebugging【发布时间】:2009-07-1014:38:23【问题描述】:我有一个带有正则表达式验证器文本框的ASP.NET网站。我已经更改了正则表达式验证属性“validatorexpression... 查看详情

工作正则表达式在 laravel 验证中不起作用

】工作正则表达式在laravel验证中不起作用【英文标题】:Workingregexnotworkinlaravelvalidation【发布时间】:2019-03-2817:19:59【问题描述】:我有自定义正则表达式用于验证社交网站中的用户个人资料网址:/(?:https:\\/\\/)?(?:http:\\/\\/)?(?:ww... 查看详情

laravel 正则表达式验证不起作用

】laravel正则表达式验证不起作用【英文标题】:laravelregexvalidationnotworking【发布时间】:2014-04-2106:01:46【问题描述】:我刚刚开始使用laravel,并且正在验证我的一种表单中的文本区域。textarea是供用户个人使用的,所以我只想允... 查看详情

Javascript验证正则表达式不起作用

】Javascript验证正则表达式不起作用【英文标题】:Javascirptvalidationregexdoesnotwork【发布时间】:2021-06-1806:12:36【问题描述】:我只是不知道为什么这种模式不起作用。似乎一切都是正确的,我没有我所缺少的。每次它都属于其他... 查看详情

英国邮政编码正则表达式验证

】英国邮政编码正则表达式验证【英文标题】:UKpostcoderegexvalidation【发布时间】:2015-08-0710:30:48【问题描述】:我正在寻找一个有效的英国邮政编码正则表达式模式,但似乎它们中的任何一个都可以作为传统或正常的正则表达... 查看详情

用于验证邮政编码或城市的 JavaScript 正则表达式

】用于验证邮政编码或城市的JavaScript正则表达式【英文标题】:JavaScriptregextovalidatepostalcodeorCity【发布时间】:2017-08-0814:31:40【问题描述】:我想对名为“城市或邮政编码”的输入字段进行客户端验证,我对用户输入有单独的验... 查看详情

正则表达式验证地址字符串不包含邮政信箱模式

】正则表达式验证地址字符串不包含邮政信箱模式【英文标题】:RegexvalidateaddressstringtonotcontainPOBoxpatterns【发布时间】:2019-03-2315:39:15【问题描述】:我在用户提供的地址字段上使用Laravelregexvalidation。我发现多个帖子有助于验... 查看详情

使用正则表达式验证英国邮政编码

】使用正则表达式验证英国邮政编码【英文标题】:ValidatingUKPostCodesusingregularexpressions【发布时间】:2011-03-2818:12:24【问题描述】:我想使用英国邮政编码验证字段。可以使用什么正则表达式来验证该字段?(([A-Z]1,2[0-9][0-9A-Z]0,1)\... 查看详情

正则表达式验证以接受百分比值

】正则表达式验证以接受百分比值【英文标题】:regexvalidationtoacceptpercentagevalues【发布时间】:2021-03-0404:51:14【问题描述】:我正在使用正则表达式来验证用户数据的输入数据应该是带小数的百分比或不带小数的百分比,所以我... 查看详情

为啥这个 C# 正则表达式不起作用?

】为啥这个C#正则表达式不起作用?【英文标题】:Whyisn\'tthisC#regularexpressionworking?为什么这个C#正则表达式不起作用?【发布时间】:2013-05-1822:12:16【问题描述】:我尝试编写一个表达式来验证以下模式:数字[0-9]恰好是1次“点... 查看详情

为啥加号运算符在 JavaScript 的正则表达式中不起作用? [复制]

】为啥加号运算符在JavaScript的正则表达式中不起作用?[复制]【英文标题】:WhytheplusoperatornotworkinginregexinJavaScript?[duplicate]为什么加号运算符在JavaScript的正则表达式中不起作用?[复制]【发布时间】:2019-01-0123:48:57【问题描述】... 查看详情

在jQuery中验证邮政编码? [复制]

】在jQuery中验证邮政编码?[复制]【英文标题】:ValidatezipcodeinjQuery?[duplicate]【发布时间】:2013-02-1504:47:10【问题描述】:在jQuery中验证邮政编码的最佳方法是什么,我不是在谈论它是否是5个字符的数字,我是在谈论一个有效的... 查看详情

通用邮政编码的两个标准和单个正则表达式

】通用邮政编码的两个标准和单个正则表达式【英文标题】:Twocriteriasandsingleregexforgenericpostalcode【发布时间】:2018-03-1323:06:50【问题描述】:我为邮政编码(非美国国家/地区)创建了一个正则表达式,以包含两个标准..最少5个... 查看详情

自定义表单验证注释不起作用

...的任何日期格式。最初我认为问题在于我用于测试的正则表达式,但在做了一些测试后,我很确定它可以工作。我错过了什么?这是我的代码(我 查看详情

jquery 验证正则表达式方法与 focusout 上的 jquery 掩码冲突

】jquery验证正则表达式方法与focusout上的jquery掩码冲突【英文标题】:jqueryvalidateregexmethodconflictswithjquerymaskonfocusout【发布时间】:2018-08-1102:13:34【问题描述】:我有一个asp.netmvc模型,它在邮政编码和电话字段上使用RegularExpression... 查看详情

PHP - 英国邮政编码只返回部门

...描述】:我正在尝试编写一个将返回邮政编码扇区的正则表达式函数。用户可以输入以下邮政编码:WA145WA125GJ我需要正则表达式来返回邮政编码的扇区。我尝试了以下方法,但它不起作用:^[a-zA-Z]+\\d\\d?[a-zA-Z]?\\s*\\d+^(((([A-Z][A-Z 查看详情