常用正則表示式
方式1:new RegExp(pattern, attributes);
方式2:/pattern/attributes
引數 | 說明 |
---|---|
pattern | 是一個字串,指定了正則表示式的模式或其他正則表示式。 |
attributes | 是一個可選的字串,包含屬性 "g"、"i" 和 "m",分別用於指定全域性匹配、區分大小寫的匹配和多行匹配。ECMAScript 標準化之前,不支援 m 屬性。如果 pattern 是正則表示式,而不是字串,則必須省略該引數。 |
1.1 方括號,用於查詢某個範圍內的字元:
表示式 | 描述 |
---|---|
[abc] | 查詢方括號之間的任何字元。 |
[^abc] | 查詢任何不在方括號之間的字元。 |
[0-9] | 查詢任何從 0 至 9 的數字。 |
[a-z] | 查詢任何從小寫 a 到小寫 z 的字元。 |
[A-Z] | 查詢任何從大寫 A 到大寫 Z 的字元。 |
[A-z] | 查詢任何從大寫 A 到小寫 z 的字元。 |
[adgk] | 查詢給定集合內的任何字元。 |
[^adgk] | 查詢給定集合外的任何字元。 |
1.2 元字元,是擁有特殊含義的字元:
元字元 | 描述 |
---|---|
. | 查詢單個字元,除了換行和行結束符。 |
\w | 查詢單詞字元。 |
\W | 查詢非單詞字元。 |
\d | 查詢數字。 |
\D | 查詢非數字字元。 |
\s | 查詢空白字元。 |
\S | 查詢非空白字元。 |
\b | 匹配單詞邊界。 |
\B | 匹配非單詞邊界。 |
\0 | 查詢 NUL 字元。 |
\n | 查詢換行符。 |
\f | 查詢換頁符。 |
\r | 查找回車符。 |
\t | 查詢製表符。 |
\v | 查詢垂直製表符。 |
\xxx | 查詢以八進位制數 xxx 規定的字元。 |
\xdd | 查詢以十六進位制數 dd 規定的字元。 |
\uxxxx | 查詢以十六進位制數 xxxx 規定的 Unicode 字元。 |
1.3 量詞
量詞 | 描述 |
---|---|
n+ | 匹配任何包含至少一個 n 的字串。 |
n* | 匹配任何包含零個或多個 n 的字串。 |
n? | 匹配任何包含零個或一個 n 的字串。 |
n{X} | 匹配包含 X 個 n 的序列的字串。 |
n{X,Y} | 匹配包含 X 至 Y 個 n 的序列的字串。 |
n{X,} | 匹配包含至少 X 個 n 的序列的字串。 |
n$ | 匹配任何結尾為 n 的字串。 |
^n | 匹配任何開頭為 n 的字串。 |
?=n | 匹配任何其後緊接指定字串 n 的字串。 |
?!n | 匹配任何其後沒有緊接指定字串 n 的字串。 |
1.4 RegExp 物件方法
方法 | 描述 |
---|---|
compile | 編譯正則表示式。 |
exec | 檢索字串中指定的值。返回找到的值,並確定其位置。 |
test | 檢索字串中指定的值。返回 true 或 false。 |
1.5 支援正則表示式的 String 物件的方法
方法 | 描述 |
---|---|
search | 檢索與正則表示式相匹配的值。 |
match | 找到一個或多個正則表示式的匹配。 |
replace | 替換與正則表示式匹配的子串。 |
split | 把字串分割為字串陣列。 |
2. 常用正則表示式
2.1 社交
郵箱
var isMail = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/; var isMail = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/; 複製程式碼
手機號
時間截止為:2018年1月11日
移動號段:134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 198
聯通號段:130 131 132 145 146 155 156 166 171 175 176 185 186
電訊號段:133 149 153 173 174 177 180 181 189 199
虛擬運營商:170
var isMobile = /^(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/; 複製程式碼
固定電話
var isTel = /^(\+\d{2}-)?0\d{2,3}-\d{7,8}$/; var isTel = /(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}/; 複製程式碼
QQ號碼
var isQQ = /^[1-9][0-9]{4,10}$/; 複製程式碼
微訊號碼
微訊號正則,6至20位,以字母開頭,字母,數字,減號,下劃線
var isWeixin = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/; 複製程式碼
2.2 字元
檢測是不是純數字
var isNum = /(^-?[0-9]\d*$)/; 複製程式碼
純中文
var isCn = /^[\u4e00-\u9fa5]+$/; 複製程式碼
使用者名稱
使用者名稱正則,4到16位(字母,數字,下劃線,減號)
var isUsername = /^[a-zA-Z0-9_-]{4,16}$/; 複製程式碼
密碼
密碼正則,以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線
var isPwd =/^[a-zA-Z]\w{5,17}$/; 複製程式碼
強密碼正則,最少6位,包括至少1個大寫字母,1個小寫字母,1個數字,1個特殊字元
var isPwd = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/; 複製程式碼
特殊字元檢測
var isSchar = /["'<>%;)(&+]+-!!@#$~/; 複製程式碼
2.3 網路
域名
var isDomain = /^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/; 複製程式碼
IP地址
var isIP = /\d+\.\d+\.\d+\.\d+/; 複製程式碼
2.4 地理位置
郵政編碼
var isMailCode = /[1-9]{1}(\d+){5}/; 複製程式碼
經緯度
經度正則
var isLong = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/; 複製程式碼
緯度正則
var isLat = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/; 複製程式碼
2.5 社會屬性
身份證號
第一代身份證只有15位數,第二代身份證有18位數,各位按照需求來選擇表示式。
第一、二代身份證
var isIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/; 複製程式碼
第一代身份證(15位)
var isIdCard = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/; 複製程式碼
第二代身份證
var isIdCard = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/; 複製程式碼
護照
var isIdCard = /^(P\d{7}|G\d{7,8}|TH\d{7,8}|S\d{7,8}|A\d{7,8}|L\d{7,8}|\d{9}|D\d+|1[4,5]\d{7})$/; 複製程式碼
統一社會信用程式碼
參照標準:
《GB_32100-2015_法人和其他組織統一社會信用程式碼編碼規則.》
按照編碼規則:
標準規定統一社會信用程式碼用18位阿拉伯數字或大寫英文字母(不適用I、O、Z、S、V)表示,分別是1位登記管理部門程式碼、1位機構類別程式碼、6位登記管理機關行政區劃碼、9位主體標識碼、1位校驗碼。
第一部分(第1位)為登記管理部門程式碼,9表示工商部門;(數字或大寫英文字母)
第二部分(第2位)為機構類別程式碼;(數字或大寫英文字母)
第三部分(第3-8位)為登記管理機關行政區劃碼;(數字)
第四部分(第9-17位)為全國組織機構程式碼;(數字或大寫英文字母)
第五部分(第18位)為校驗碼(數字或大寫英文字母)
var isOrgCode = /^([0-9ABCDEFGHJKLMNPQRTUWXY]{2})(\d{6})([0-9ABCDEFGHJKLMNPQRTUWXY]{9})([0-9ABCDEFGHJKLMNPQRTUWXY])$/; var isOrgCode = /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g 複製程式碼
營業執照註冊號
var isBusinessRegNo = /(^(?:(?![IOZSV])[\dA-Z]){2}\d{6}(?:(?![IOZSV])[\dA-Z]){10}$)|(^\d{15}$)/; 複製程式碼
不動產單元號
var isCode = /^\d{12}[GJZ][ABSXCDEFGHWY]\d{4}[1-9][FLQW]\d{7}[1-9]$/; 複製程式碼
組織機構程式碼
全國組織機構程式碼由八位數字(或大寫拉丁字母)本體程式碼和一位數字(或大寫拉丁字母)校驗碼組成。
var isOrgCode = /[A-Za-z0-9]{8}-[A-Za-z0-9]$/; 複製程式碼
車牌號碼
var isCar = /^[京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$/; 複製程式碼