【问题标题】:Fixing Street Address Regex Validation修复街道地址正则表达式验证
【发布时间】:2019-03-16 16:45:49
【问题描述】:

经过数小时的搜索,我找到了一个验证街道地址的正则表达式(只是没有城市/州/邮编的街道)。这仅供美国使用。 很难找到适合我的需要或适用于编号街道的任何东西。

我使用的那个效果很好,除了像

这样的例子
12345 5th ave ne
4367 103rd North
1234 Main St     <- currently works but needs to work after fix
12345 Apple Way  <- currently works but needs to work after fix

所有当前工作的实例都需要继续工作。

它希望 Ave(或 st/etc)最后的问题,我需要允许所有北/南/西/东组合作为单或双组合也位于最后(例如西南, NE,东北部)。

我不想包含每个组合,而是在找到其中一个组合或单个组合时允许(匹配)(不区分大小写)。我还想优化 Way/Street/etc 使其不区分大小写

对于我的使用,unit #/Apt #/etc 不会严格用于基本街道地址。

这是我目前拥有的:

\d+[ ](?:[A-Za-z0-9.-]+[ ]?)+(?:Avenue|Lane|Road|Boulevard|Drive|Street|Way|Ave|Dr|Rd|Blvd|Ln|St|Wy|avenue|lane|road|boulevard|drive|street|way|ave|dr|rd|blvd|ln|st|wy)\.?

感谢所有帮助。

【问题讨论】:

标签: regex street-address


【解决方案1】:

试试这个:

/\d+\s[\w]+\s(.*)/i

你可以通过调用小组赛1来获得街道。

DEMO

更新

如果您想获得整个“主要街道”和“苹果之路”,您可以通过使用此正则表达式调用小组赛 2 来实现:

\d+\s(\d*[a-z]+)?\s?(.*)

DEMO

【讨论】:

  • 有点过于简单,只想验证类似于“2 b”上匹配的地址的东西太宽松了,就像我指出我所拥有的是满足需求,但它不允许 NW,North ,等等结束
  • 我可能应该补充一点,我在 html 表单模式中使用它=
  • 您能否给我您想要匹配的原始数据以及该数据的预期匹配?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-12
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
  • 2018-11-04
  • 1970-01-01
相关资源
最近更新 更多