我需要使用jquery regex验证address1,address 2和city ..
用于街道地址。法律字符:A-Z,a-z,0-9,连字符,斜线和单个空格。非法字符:前导空格,尾随空格,相邻空格和其他符号。
用于城市。法律字符:A-Z,a-z和单个空格。非法字符:前导空格,尾随空格,相邻空格和符号。
示例:
地址1:{required:true,regex:“A-Za-z0-9 *”}
答案 0 :(得分:3)
我假设您正在为某个项目执行此操作,因此您应该自己弄清楚如何自行执行正则表达式。
但是,我会告诉你的。我的理解是,您需要分别为每个字段提供正则表达式,并且它们将单独验证。
//Address 1 & 2 regex
regex: /^[a-zA-Z0-9-\/] ?([a-zA-Z0-9-\/]|[a-zA-Z0-9-\/] )*[a-zA-Z0-9-\/]$/
以字母/数字/破折号/斜杠开头,后跟可选空格。跟随任意数量的l / n / d / s或l / n / d / s后跟一个空格(这会强制只有一个空格,因为每个空格必须以l / n / d / s开头)。以l / n / d / s结束。
//City is much easier:
regex: /^[a-zA-z] ?([a-zA-z]|[a-zA-z] )*[a-zA-z]$/
与上面几乎相同,只是不用担心数字,短划线和斜线。
查看单元测试:http://jsfiddle.net/LJCzR/4/
如上所述,虽然如果您出于学术原因不这样做,那么我根本不会在前导/尾随空间或复制空间上进行验证。我会默默地清理它。此外,您根本无法解释每个案例。这种验证很烦人。
答案 1 :(得分:2)
Yogee,我对使用正则表达式验证地址非常谨慎。我实际上在SmartyStreets工作,我们的专长是地址验证,我从经验中知道正则表达式根本就不够,除非你当然想要挫败用户那些百分比的地址不适合上面的正则表达式,但仍然有效,或者如果你想接受那些仍然适合正则表达式的用户的错误信息。
换句话说,我很快就开始学习正则表达式不是真正验证的全面,功能性替代方案。我建议你研究一个易于使用的API来为你做这个吗?含义:某人(经政府机构认证)已经为您完成了所有艰难的工作。在验证地址时需要考虑很多......很多。
当然,我会推荐一项我曾经使用过的服务,LiveAddress(使用Javascript免费且超级简单) - 如果您有任何其他问题,我可以使用#39我很乐意亲自帮助你。
答案 2 :(得分:1)
这是一个很棒的Regexp教程,解释了语法的工作原理以及如何进行多种验证。 http://net.tutsplus.com/tutorials/other/8-regular-expressions-you-should-know/。