我正在尝试查看验证美国地址的好方法,我知道可能没有一种正确的方法可以做到这一点,但我会采用基本方式:#,街道名称,城市,州和邮政编码。
任何想法都会欣赏它。感谢
答案 0 :(得分:4)
不要试试。有人可能会有邮局信箱或公寓号码等等,他们真的会和你发生冲突。即使是“正常”的街道名称也可以包含数字,例如纽约市的第125街(以及许多其他地方)。即使是郊区也可以有一些编号的街道。
城市名称可以有空格。
答案 1 :(得分:4)
要求用户在单独的字段(街道名称,城市,州和邮政编码)中输入部分地址,并使用适合此类字段的任何验证。这是一般做法。
或者,如果你想要最简单的正则表达式匹配由三个逗号分隔的四个字符串,试试这个:
/^(.+),([^,]+),([^,]+),([^,]+)$/
如果匹配,您可以使用其他模式匹配来检查地址的组成部分。没有办法检查街道地址的有效性,但您可以发送邮政编码和州代码。
答案 2 :(得分:2)
地址的变化太多,无法使用正则表达式执行此操作。您最好找一个可以验证地址的Web服务。 USPS has one - 您必须获得使用权限。
答案 3 :(得分:2)
我同意salman:让用户在不同的字段中输入数据(一个用于zip,一个用于州,一个用于城市,一个用于#/街道名称。对每个字段使用不同的正则表达式。对于街道# /命名我想出的最好的表达是
/^[0-9]{1,7} [a-zA-z0-9]{2,35}\a*/
答案 4 :(得分:0)
这不是一个防弹解决方案,但假设地址以街道号码的数字开头,并以邮政编码结尾,邮政编码可以是5或9个数字。
([0-9] {1,} [\ s \ S] *?[0-9] {5}(?: - [0-9] {4})?)
就像我说的那样,它不是防弹的,但过去我用它的边缘成功。
答案 5 :(得分:0)
在新西兰,您可以从New Zealand Post许可官方邮政地址列表 - 为您提供在新西兰使用每个有效邮政地址填充表格所需的数据。
对此列表进行验证比尝试使用正则表达式要容易得多 - 并且准确性也高得多 ,因为最终会出现三种情况:
RegEx的最佳效果是
对于许多企业来说,需要了解邮政地址是一种非常普遍的情况,所以我相信在大多数地区都可以获得许可列表。
唯一的关键是定价。