1. 概述
文法 | REGEXP(正文, 正則運算式) | 「正文」是否與「正則運算式」相匹配 |
---|---|---|
參數1 | 正文 | 字串 |
參數2 | 正則運算式 | 正則運算式 |
回傳值類型 | 布爾 |
2. 注意事項
正則運算式需要以字串傳入,如果運算式中有\,需要使用\\(轉義)。所以當公式為regexp(字串,"\d")時會提示不合法,需寫成regexp(字串,"\\d"),如下圖所示:
如果參數中有NULL,則結果為NULL
3. 範例
公式 | 結果 |
---|---|
REGEXP("aaaaac","a*c") | true |
REGEXP("abc","a*c") | false |
一些常用正則運算式舉例:
運算式目的 | 運算式 | 說明 |
---|---|---|
檢查指定手機號碼是否合法 注:僅範例,校驗規則可根據你的實際情況書寫。 | ^1(3\d|5[36789])\d{8}$ | 手機號碼共 11 位,第一位為 1,第二位為 3 或者 5,當第二位為 5 的時候,第三位只能是 36789 中的一個 |
檢查中文名是否合法 | ^[\u4e00-\u9fa5]+$ | 若不是中文或中文的前後有空格,都認為是不合法的 |
檢查 HTML 標記是否匹配 | <(.*)>.*<\/\1>|<(.*) \/> | 如若只出現<html>而無對應的</html>,則檢驗結果是 HTML 標記不匹配 |
檢查 URL 格式是否合法 | [a-zA-z]+://[^\s]* | URL合法格式應該以字母連結://開頭 |
檢查 IP 格式是否合法 | (\d+)\.(\d+)\.(\d+)\.(\d+) | IP的格式是點分十進制格式,例如:192.168.100.11 就是正確的 IP |
檢查帳號是否合法 | ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ | 帳號字母開頭,其他位可以有大小寫字母、數字、底線,允許 5-16 位元組 |
檢查 QQ 號是否合法 | ^\s*[0-9]{4,9}\s*$ | QQ 號碼必須是數字,最短 5 位,最長 10 位 |
檢查郵遞區號是否合法 | ^[1-9]\d{5}$ | 郵編首位不為 0,長度是 6 位的數字 |
檢查身分證號是否合法 | (^\d{14}$)|(^\d{17}([0-9]|X)$) | 身分證號碼為 15 位或者 18位,15 位時全為數字,18 位前 17 位為數字,最後一位是校驗位,可能為數字或字元 X |
檢查時間是否合規 | ^(0\d{1}|1\d{1}|2[0-3]):([0-5]\d{1})$ | 時間是 24 小時制,:號前是 01 到 23 |
檢查密碼是否合規 | ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ | 密碼必須包含大小寫字母和數位的組合,不能使用特殊字元,長度在 8-10之間 |
檢查信箱是否合規 | 因為信箱格式類型比較多,比較常用的是^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ | 只允許英文字母、數字、底線、英文句號、以及中劃線組成 如果名稱中有漢字、字母、數字,域名只允許英文域名,正則運算式為^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ |
檢查輸入內容是否有空格 | ^[^\s]*$ | 輸入內容不允許包含空格時使用,正則運算式為^[^\s]*$ |
檢查使用者密碼是否合法 | ^[a-zA-Z]\w{5,17}$ | 密碼規則是以字母開頭,長度在 6-18 之間,只能包含字母、數字和底線。 |