使用正则表达式验证
下面是一些例子,让你对它们的工作原理有个基本的了解:
a — 匹配一个字符a (不能匹配 b, aa等等.)
abc — 匹配 a, 其次 b, 最后 by c.
a* — 匹配字符 a, 0个或者多个 (+ 代表至少匹配一个或者多个).
[^a] — 匹配不以字符 a开头的.
a|b — 匹配一个字符 a 或者 b.
[abc] — 匹配 abc范围中的任意一个.
[^abc] — 匹配不是 abc这三个字符的.
[a-z] — 匹配字符范围 a-z且全部小写 (你可以使用 [A-z] 涵盖大小写, 或 [A-Z] 来限制必须大写).
a.c — 匹配字符 a,中间匹配任意一个字符,最后匹配字符 c.
a{5} — 匹配字符 a五次.
a{5,7} — 匹配字符 a五到七次,不能多或者少.
你也可以在这些表达式中使用数字和其他字符, 例如:
[ |-] — 匹配一个空格或者虚线.
[0-9] — 匹配数字范围0~9.
你可以任意地组合这些,你可以任意指定不同的部分:
[Ll].*k — 匹配一个大写L或者小写的l, 之后匹配一个或多个任意类型的字符, 最后匹配一个小写字母 k.
[A-Z][A-z|-|']+ — 一个大写字母后面跟着匹配一个大小写字母或者中划线或者撇号. 这个可以用于校验英语会话中城市或城镇名, 但这需要首字母以大写开头,不包括其他字符(你可以添加额外的表达式来做到). 就像 from the UK include Manchester, Ashton-under-lyne, and Bishop's Stortford. 你可以在表达式最后写上 [A-z-' ]+ (没有管道字符), 但是不好阅读.
[0-9]{3}[ |-][0-9]{3}[ |-][0-9]{4} — 简单的匹配一个美国内的电话号码 — 三个数字 0-9, 后面跟着一个空格或者中划线, 之后匹配三个数字 0-9, 再跟着一个空格或者中划线, 最后跟着四个数字 0-9. 但实际情况可能更加复杂,因为有些人会给号码加上括号什么的,这里的表达式只是用来做一个简单的演示.