编写一些正则表达式来帮助处理街道地址。但是,我不确定正则表达式是否是解决此问题的正确方法。
我有一个如下所示的街道地址:
7829 Hollywood Ave
我想写一个这样的正则表达式(伪-ode):
match a NUMBER then ONE OR MORE WORDS then a STREET TYPE
在 javascript 中,这个正则表达式看起来像这样:
/^\d+\s+.*(\sAve|\sStreet|\sSt.|..800 MORE ABBREVIATIONS!...)/ig
如你所见,因为有800+ postal street "type" abbreviations ,这个正则表达式会非常大。我必须使用计算机代码实际生成它,这没问题,但我不确定这是解决此类问题的好方法吗?
我可以看到这个问题到了我想编写一个正则表达式来尝试将街道名称与数据库中的街道名称相匹配的地步。然后我真的不明白标准正则表达式在那种情况下如何工作:
match a NUMBER then **A STREET NAME IN A DATABASE** then a STREET TYPE
欢迎任何意见!
最佳答案
如果所有地址都像 <number> <name> <type>
这样简单生活会很简单 - 但事实并非如此,所以事实并非如此。
街道地址对于单个正则表达式而言过于复杂,例如5/45 East 51st St 或 215-217 Long Island Way。您需要:将其分解并解析各个部分,让用户在特定字段中输入地址,或者只接受他们给您的内容。
关于javascript - 带有大量 "or' 的正则表达式”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9458583/