使用正則表達式驗證
下面是一些例子,讓你對它們的工作原理有個基本的了解:
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五到七次,不能多或者少.
你也可以在這些表達式中使用數(shù)字和其他字符, 例如:
[ |-]?— 匹配一個空格或者虛線.
[0-9] — 匹配數(shù)字范圍0~9.
你可以任意地組合這些,你可以任意指定不同的部分:
[Ll].*k?— 匹配一個大寫L或者小寫的l, 之后匹配一個或多個任意類型的字符, 最后匹配一個小寫字母 k.
[A-Z][A-z|-|']+?— 一個大寫字母后面跟著匹配一個大小寫字母或者中劃線或者撇號. 這個可以用于校驗英語會話中城市或城鎮(zhèn)名, 但這需要首字母以大寫開頭,不包括其他字符(你可以添加額外的表達式來做到). 就像 from the UK include Manchester, Ashton-under-lyne, and Bishop's Stortford. 你可以在表達式最后寫上?[A-z-' ]+?(沒有管道字符), 但是不好閱讀.
[0-9]{3}[ |-][0-9]{3}[ |-][0-9]{4}?— 簡單的匹配一個美國內的電話號碼 — 三個數(shù)字 0-9, 后面跟著一個空格或者中劃線, 之后匹配三個數(shù)字 0-9, 再跟著一個空格或者中劃線, 最后跟著四個數(shù)字 0-9. 但實際情況可能更加復雜,因為有些人會給號碼加上括號什么的,這里的表達式只是用來做一個簡單的演示.