地址字段验证的正则表达式

dam*_*mes 14 regex

我正在尝试编写一个有助于地址的正则表达式,例如21大步行方式或21 St.Elizabeth的驱动器我想出了以下正则表达式,但我不太热衷于如何合并所有字符(字母数字,空格破折号,句号,撇号)

"regexp=^[A-Za-z-0-99999999'
Run Code Online (Sandbox Code Playgroud)

Ski*_*erm 21

贵妇人,

请参阅有关使用正则表达式验证地址的此问题的答案: 正则表达式街道地址匹配

问题是,街道地址的格式变化太大,以至于很难对它们进行编码.如果您正在尝试验证地址,那么根据其格式查找某个地址是否有效是非常困难的.这将返回以下地址(253 N. Cherry St.),任何格式相同的地址:

\d{1,5}\s\w.\s(\b\w*\b\s){1,2}\w*\.
Run Code Online (Sandbox Code Playgroud)

这允许门牌号码为1位数,空格,字符后跟句点(对于N.或S.),1-2字为街道名称,以缩写(如st.或rd.)结束. .

因为正则表达式用于查看事物是否符合标准或协议(您定义的),所以您可能不希望允许上面提供的地址,尤其是带有破折号的第一个地址,因为它们不是非常标准的.如果你愿意,你可以修改我的上面的代码以允许它们 - 你可以添加

(-?)
Run Code Online (Sandbox Code Playgroud)

允许破折号但不需要破折号.

此外,http://rubular.com/是一种快速,互动的学习正则表达式的方法.尝试使用上面的地址.


小智 11

如果您没有上述地址的固定格式,我会使用正则表达式来消除地址中未使用的符号(如专门的sybmols - &(%#$ ^).是:

[A-Za-z0-9'\.\-\s\,]
Run Code Online (Sandbox Code Playgroud)


Jay*_*ham 7

用于简单地址验证的正则表达式

^[#.0-9a-zA-Z\s,-]+$
Run Code Online (Sandbox Code Playgroud)

例如地址匹配案例

#1, North Street, Chennai - 11 
Run Code Online (Sandbox Code Playgroud)

例如地址不匹配大小写

$1, North Street, Chennai @ 11
Run Code Online (Sandbox Code Playgroud)


小智 6

只是添加到Serzas的答案中(因为没有足够的评论。)字母和数字可以有效地用\ w代替单词。另外,撇号,逗号,句号和连字符不一定需要反斜杠。我的要求还涉及正斜杠和反斜杠,所以\ /最后是带有\ s的空格。对我来说,工作正则表达式是:

pattern: "[\w',-\\/.\s]"
Run Code Online (Sandbox Code Playgroud)