一个正则表达式验证美国和加拿大邮政编码

use*_*507 9 regex

我正在开发一个文具程序.客户可以选择在美国或加拿大选择他们的地区.当他们输入地址时,他们必须输入ZIP /邮政编码.我正在尝试验证字段,但我不能在美国或加拿大使用reg exp.我需要一个验证两个国家邮政编码的正则表达式.

dg9*_*g99 21

不知道你正在使用什么语言,我不会对字符类使用任何缩写:

^[0-9]{5}$|^[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9]$
Run Code Online (Sandbox Code Playgroud)

根据您的语言,您可以将其缩写为

^([0-9]{5}|[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9])$
Run Code Online (Sandbox Code Playgroud)

要么

^(\d{5}|[A-Z]\d[A-Z] ?\d[A-Z]\d)$
Run Code Online (Sandbox Code Playgroud)

支持ZIP + 4:

^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] ?\d[A-Z]\d)$
Run Code Online (Sandbox Code Playgroud)

如果你想对你的加拿大代码非常挑剔:

^(\d{5}(-\d{4})?|[A-CEGHJ-NPRSTVXY]\d[A-CEGHJ-NPRSTV-Z] ?\d[A-CEGHJ-NPRSTV-Z]\d)$
Run Code Online (Sandbox Code Playgroud)

  • 这也不支持美国+4邮政编码.即12345-6789 (2认同)