我正在尝试修改此脚本以接受,并且'为此正则表达式验证表单上的地址是否正确写入?
^[a-zA-Z0-9\s\,\''\-]*$
答案 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是一个很好的起点。