我正在开发一个文具程序。客户可以选择他们所在的地区,美国或加拿大。当他们输入地址时,必须输入邮政编码。我正在尝试验证该字段,但无法针对美国或加拿大使用正则表达式。我需要一种正则表达式来验证两个国家的邮政编码。
我正在开发一个文具程序。客户可以选择他们所在的地区,美国或加拿大。当他们输入地址时,必须输入邮政编码。我正在尝试验证该字段,但无法针对美国或加拿大使用正则表达式。我需要一种正则表达式来验证两个国家的邮政编码。
我不知道你使用的是什么语言,因此我不会使用任何字符类的缩写:
^[0-9]{5}$|^[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9]$
根据您的语言,您可能可以缩写为
^([0-9]{5}|[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9])$
或者^(\d{5}|[A-Z]\d[A-Z] ?\d[A-Z]\d)$
支持ZIP+4:^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] ?\d[A-Z]\d)$
如果你想对你的加拿大编码进行更加严谨的挑剔:
^(\d{5}(-\d{4})?|[A-CEGHJ-NPRSTVXY]\d[A-CEGHJ-NPRSTV-Z] ?\d[A-CEGHJ-NPRSTV-Z]\d)$
在上面的回答中,你可以在正则表达式的开头添加(?i),使其不区分大小写。所以它会变成这样:
^(?i)(\d{5}(-\d{4})?|[A-CEGHJ-NPRSTVXY]\d[A-CEGHJ-NPRSTV-Z] ?\d[A-CEGHJ-NPRSTV-Z]\d)$
(?i)
是非标准的之外,它对于这个问题也是不正确的。 - dg99这对我有用。测试了美国邮政编码和加拿大邮政编码。
^((\d{5}-\d{4})|(\d{5})|([A-Z|a-z]\d[A-Z|a-z]\d[A-Z|a-z]\d))$