如何创建正则表达式来验证邮政编码和邮政编码?

时间:2010-01-05 10:14:29

标签: regex

我需要一个正则表达式来验证Zipcode或邮政编码 - 它必须是8个字符 字母数字字段即允许A-Z,a-z或0-9。

感谢。

4 个答案:

答案 0 :(得分:9)

^[a-zA-Z0-9]{8}$

这也可以,但通常允许下划线:^\w{8}$

更新

允许字符串中的空闲空格(为简单起见,这允许字符串末尾有额外的空格,但不是开头):

^([a-zA-Z0-9]\s*){8}$

这允许自由空格,连字符和(后退)?slashed,这在邮政编码中很常见:

^([a-zA-Z0-9][\s\\/-]*){8}$

答案 1 :(得分:0)

你不能,因为并非所有符合邮政编码格式的数字模式都是有效的邮政编码。

答案 2 :(得分:0)

如果验证框架支持这种自定义验证,我会尝试将zip /邮政编码与国家/地区代码一起验证。如果您的许多客户来自特定国家/地区,这将导致更准确的验证。

例如,我首先检查国家代码,如果是美国,我可以更具体:

   if (countryCode == "US") {

      regex = "^\d{5}([\-]\d{4})?$";    // trim string first
   }
   else {

       // see other answers!
   }

(当然这适用于任何国家,例如邮政编码为固定格式的英国)

答案 3 :(得分:0)

如果您有兴趣验证世界各地的地址,请查看http://intlmailaddress.com。它有来自246个国家的邮政地址格式,邮政编码格式和电话格式。地区名称,(如州,省,酋长国,胜利等)