web開發中比較常用的也就那麼幾個。下面作者將工作中常用的一些Regex做一個總結。
| 說明 |
Regex |
| 網址(URL) |
[a-zA-z]+://[^s]* |
| IP地址(IP Address) |
((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?) |
| 電子郵件(Email) |
w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* |
| QQ號碼 |
[1-9]d{4,} |
| HTML標記(包含內容或自閉合) |
<(.*)(.*)>.*</1>|<(.*) /> |
| 密碼(由數字/大寫字母/小寫字母/標點符號組成,四種都必有,8位以上) |
(?=^.{8,}$)(?=.*d)(?=.*W+)(?=.*[A-Z])(?=.*[a-z])(?!.*n).*$ |
| 日期(年-月-日) |
(d{4}|d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1])) |
| 日期(月/日/年) |
((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(d{4}|d{2}) |
| 時間(小時:分鐘, 24小時制) |
((1|0?)[0-9]|2[0-3]):([0-5][0-9]) |
| 漢字(字元) |
[u4e00-u9fa5] |
| 中文及全形標點符號(字元) |
[u3000-u301eufe10-ufe19ufe30-ufe44ufe50-ufe6buff01-uffee] |
| 中國大陸固定電話號碼 |
(d{4}-|d{3}-)?(d{8}|d{7}) |
| 中國大陸手機號碼 |
1d{10} |
| 中國大陸郵遞區號 |
[1-9]d{5} |
| 中國大陸社會安全號碼(15位或18位) |
d{15}(dd[0-9xX])? |
| 非負整數(正整數或零) |
d+ |
| 正整數 |
[0-9]*[1-9][0-9]* |
| 負整數 |
-[0-9]*[1-9][0-9]* |
| 整數 |
-?d+ |
| 小數 |
(-?d+)(.d+)? |
只能輸入數字:"^[0-9]*$"
只能輸入 n 位的數字:"^d{n}$"
只能輸入至少 n 位的數字:"^d{n,}$"
只能輸入 m ~ n 位的數字:"^d{m,n}$"
只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"
只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"
只能輸入有 1~3 位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"
只能輸入非零的正整數:"^+?[1-9][0-9]*$"
只能輸入非零的負整數:"^-[1-9][0-9]*$"
只能輸入長度位 3 的字元:"^.{3}$"
只能輸入由 26 個英文字母組成的字串:"^[A-Za-z]+$"
只能輸入由 26 個大寫英文字母組成的字串:"^[A-Z]+$"
只能輸入由 26 個小寫英文字母組成的字串:"^[a-z]+$"
只能輸入由數字和 26 個英文字母組成的字串:"^[A-Za-z0-9]+$"
只能輸入由數字、26個英文字母或者底線組成的字串:"^w+$"
驗證使用者密碼: "^[a-zA-Z]w{5,17}$" 正確格式位:以字母開頭,長度在6~18之間,只能包含字元、數字和底線
驗證是否含有非法字元 ^(?:[u4e00-u9fa5]*w*s*)+$
只能輸入漢字:"^[u4e00-u9fa5]{0,}$"
驗證 Email 地址:"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$"
驗證 InternetURL:"^http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?$"
中國電話號碼驗證
匹配形式如:0511-4405222 或者021-87888822 或者 021-44055520-555 或者 (0511)4405222
Regex "((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*"
中國郵遞區號驗證
匹配形式如:215421
Regex "d{6}"
電子郵件驗證
匹配形式如:justali@justdn.com
Regex "w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"
身份證驗證
匹配形式如:15位或者18位身份證
Regex "d{18}|d{15}"
常用數字驗證
Regex
"d{n}" n為規定長度
"d{n,m}" n到m的長度範圍
非法字元驗證
匹配排除非法字元的字元如:
Regex ^(?:[u4e00-u9fa5]*w*s*)+$
日期驗證
匹配形式如:20030718,030718
範圍:1900--2099
Regex((((19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}