用于验证地址的JavaScript Regular Expression

时间:2010-09-21 19:39:54

标签: javascript regex

我正在尝试修改此脚本以接受,并且'为此正则表达式验证表单上的地址是否正确写入?

^[a-zA-Z0-9\s\,\''\-]*$

4 个答案:

答案 0 :(得分:14)

它有效,但有一些冗余的逃脱。

你无需逃避逗号,单引号和连字符。只有当char具有特殊含义并且您希望按字面意思使用它时才会转义。在char类中:

  • -是一个元字符,但不是它 出现在开头或结尾。 在你的情况下,它出现在最后 它失去了它的特殊含义 范围制作)。
  • ]是一个标记出来的元字符 char类结束。所以,如果你想 使]成为您需要的char类的一部分 逃避它。

所以你可以把你的正则表达式写成:

^[a-zA-Z0-9\s,'-]*$

答案 1 :(得分:1)

在评论中,Daniel Vandersluis有一个非常好的观点:地址无法通过正则表达式进行验证。 USPS有一个称为CASS(编码准确性支持系统)的整个部门,专门用于验证地址数据。我在SmartyStreets工作,为人们提供CASS认证服务。事实上,如果您真的对好的地址感兴趣,我会帮助您亲自上手(例如,使用Javascript非常简单。只需要一个一分钟左右。)

答案 2 :(得分:1)

以上回答当您的输入为“House No.-780”时,Regex会给出错误。用户可以添加“。”到地址,因此我们必须制作接受点的正则表达式。你可以使用这个正则表达式

/^[a-zA-Z0-9\s,.'-]{3,}$/ . 

此正则表达式接受最少三个字符,并且对最大字符没有限制。字符可能包括a-z,A-Z字母,空格,逗号(,),点(。),撇号(')和短划线( - )符号。

答案 3 :(得分:0)

如果您只想接受任何这些字符(或空字符串),那么您可以修改当前的字符:

/^[a-z0-9\s,'-]*$/i

然而,这绝不是街道地址验证器。我建议你从某个地方学到更多关于正则表达式的知识。 http://www.regular-expressions.info/examples.html是一个很好的起点。