javascript
JS Regex
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
Regex
-
匹配html標簽中的內容
/(?<=>)[^>]+(?=<[\\/]?\\w+.*>)/g -
匹配html標簽
/<[^>]+>/g const endReg = /<("[^"]*"|'[^']*'|[^'">])*>/g -
html注釋
/^<!--[\\s\\S]*?-->$/ const noteReg = /<!--(.*?)-->/gconst htmlStr = '<!--一個div標簽--> <div></div> <!--一個div標簽--> <div></div>'console.log(noteReg.exec(htmlStr)) // [ // '<!--一個div標簽-->', // '一個div標簽', // index: 0, // input: '<!--一個div標簽--> <div></div> <!--一個div標簽--> <div></div>', // groups: undefined // ] console.log(noteReg.exec(htmlStr)) // [ // '<!--一個div標簽-->', // '一個div標簽', // index: 27, // input: '<!--一個div標簽--> <div></div> <!--一個div標簽--> <div></div>', // groups: undefined // ] -
匹配html中的style
const styleReg = /style="[^=>]*"([(\\s+\\w+=)|>])/gconst htmlStr = '<div style="background:#000;"><span style="color:#fff"></span></div>'console.log(styleReg.exec(htmlStr)) // [ // 'style="background:#000;">', // '>', // index: 5, // input: '<div style="background:#000;"><span style="color:#fff"></span></div>', // groups: undefined // ] console.log(styleReg.exec(htmlStr)) // [ // 'style="color:#fff">', // '>', // index: 36, // input: '<div style="background:#000;"><span style="color:#fff"></span></div>', // groups: undefined // ] -
匹配html中的顏色
const colorReg = /#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/gconst htmlStr = '<div style="background:#000;"><span style="color:#fff"></span></div>'console.log(colorReg.exec(htmlStr)) // [ // '#000', // '000', // index: 23, // input: '<div style="background:#000;"><span style="color:#fff"></span></div>', // groups: undefined // ] console.log(colorReg.exec(htmlStr)) // [ // '#fff', // 'fff', // index: 49, // input: '<div style="background:#000;"><span style="color:#fff"></span></div>', // groups: undefined // ] -
是否html標簽(寬松匹配)
/<(.*)>.*<\\/\\1>|<(.*) \\/>/ /<("[^"]*"|'[^']*'|[^'">])*>/g -
匹配img和src
const imgReg = /<img.*?src=[\\"|\\']?(.*?)[\\"|\\']?\\s.*?>/igconst htmlStr = '<div></div><img src="sunshine.png" /><img src="sunshine111.png" />'console.log(imgReg.exec(htmlStr)) // [ // '<img src="sunshine.png" />', // 'sunshine.png', // index: 11, // input: '<div></div><img src="sunshine.png" /><img src="sunshine111.png" />', // groups: undefined // ] console.log(imgReg.exec(htmlStr)) // [ // '<img src="sunshine111.png" />', // 'sunshine111.png', // index: 37, // input: '<div></div><img src="sunshine.png" /><img src="sunshine111.png" />', // groups: undefined // ] -
大于等于0, 小于等于150, 支持小數位出現5, 如145.5, 用于判斷考卷分數
/^150$|^(?:\\d|[1-9]\\d|1[0-4]\\d)(?:.5)?$/ -
是否小數
/^\\d+\\.\\d+$/ /^[-\\+]?\\d+(\\.\\d+)?$/ -
保留n位小數
function checkFloat(n) {return new RegExp(`^([1-9]+[\\d]*(.[0-9]{1,${n}})?)$`) } // 保留2位小數 const floatReg = checkFloat(2) -
整數
/^[-+]?\\d*$/ -
純數字
/^\\d{1,}$/ -
純英文字母
/^[a-zA-Z]+$/ -
純小寫英文字母組成
/^[a-z]+$/ -
純大寫英文字母
/^[A-Z]+$/ -
不能包含字母
/^[^A-Za-z]*$/ -
是否由數字和字母組成
/^[A-Za-z0-9]+$/ -
字符串長度n的校驗
function checkStrLength(n) {return new RegExp(`^.{${n}}$`) }// 校驗長度為3的字符串 const lengthReg = checkStrLength(3) -
密碼強度正則
-
最少6位,包括至少1個大寫字母,1個小寫字母,1個數字,1個特殊字符
/^.*(?=.{6,})(?=.*\\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/ -
必須包含字母、數字、特稱字符,至少8個字符,最多30個字符
/(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}/
-
-
微信號,6至20位,以字母開頭,字母,數字,減號,下劃線
/^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/ -
是否qq號格式正確
/^[1-9][0-9]{4,10}$/ -
用戶名正則,4到16位(字母,數字,下劃線,減號)
/^[a-zA-Z0-9_-]{4,16}$/ -
純中文/漢字
/[\\u4E00-\\u9FA5]/ /^(?:[\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uFA0E\\uFA0F\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29]|[\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0])+$/ -
中國郵政編碼
/^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\\d{4}$/-
郵政編號的校驗
/^\\d{6}$/
-
-
只包含中文和數字
/^((?:[\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uFA0E\\uFA0F\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29]|[\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0])|(\\d))+$/ -
視頻鏈接地址(視頻格式可按需增刪)
/^https?:\\/\\/.*?(?:swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4)$/i -
圖片鏈接地址(圖片格式可按需增刪)
/^https?:\\/\\/.*?(?:gif|png|jpg|jpeg|webp|svg|psd|bmp|tif)$/i -
base64格式
/^\\s*data:(?:[a-z]+\\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s]*?)\\s*$/i -
電話(座機)
/^0\\d{2,3}-\\d{7,8}$/ -
手機號
-
手機號
/^[1][3,4,5,6,7,8,9][0-9]{9}$/ -
中國手機號(嚴謹), 根據工信部2019年最新公布的手機號段
/^(?:(?:\\+|00)86)?1(?:(?:3[\\d])|(?:4[5-7|9])|(?:5[0-3|5-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\\d])|(?:9[1|8|9]))\\d{8}$/ -
中國手機號(寬松), 只要是13,14,15,16,17,18,19開頭即可
/^(?:(?:\\+|00)86)?1[3-9]\\d{9}$/ -
中國手機號(最寬松), 只要是1開頭即可, 如果你的手機號是用來接收短信, 優先建議選擇這一條
/^(?:(?:\\+|00)86)?1\\d{10}$/
-
-
身份證
-
一代身份證號(15位數字)
/^\\d{8}(0\\d|10|11|12)([0-2]\\d|30|31)\\d{3}$/ -
二代身份證號(18位數字),最后一位是校驗位,可能為數字或字符X
/^\\d{6}(18|19|20)\\d{2}(0\\d|10|11|12)([0-2]\\d|30|31)\\d{3}(\\d|X|x)$/ -
身份證號, 支持1/2代(15位/18位數字)
/(^\\d{8}(0\\d|10|11|12)([0-2]\\d|30|31)\\d{3}$)|(^\\d{6}(18|19|20)\\d{2}(0\\d|10|11|12)([0-2]\\d|30|31)\\d{3}(\\d|X|x)$)/ -
身份證
/^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$/
-
-
時間
-
檢查HH:mm
/^(?:[01]\\d|2[0-3])(?::[0-5]\\d)$/; -
HH:mm:ss
/^(?:[01]\\d|2[0-3])(?::[0-5]\\d){2}$/; -
24小時制時間(HH:mm:ss)
/^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/ -
12小時制時間(hh:mm:ss)
/^(?:1[0-2]|0?[1-9]):[0-5]\\d:[0-5]\\d$/
-
-
日期
/^\\d{4}(-)(1[0-2]|0?\\d)\\1([0-2]\\d|\\d|30|31)$/-
YYYY-MM-DD
/^\\d{4}(\\-)\\d{1,2}\\1\\d{1,2}$/ -
YYYY-MM-DD hh:mm:ss
/^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2}) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})$/
-
-
郵箱地址(email)
-
郵箱
/^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/ /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
-
-
網址
/^((https?|ftp|file):\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\/\\w \\.-]*)*\\/?$/ /^(?:(?:https?|ftp):\\/\\/)?(?:[\\da-z.-]+)\\.(?:[a-z.]{2,6})(?:\\/\\w\\.-]*)*\\/?/ -
文件擴展名
function checkFileName (arr) {arr = arr.map(name => `.${name}`).join('|')return new RegExp(`(${arr})$`) }const filenameReg = checkFileName(['jpg', 'png', 'txt']) -
IPv4
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ -
ip-v6
/^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i -
16進制顏色
/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/ -
國內座機電話,如: 0341-86091234
/\\d{3}-\\d{8}|\\d{4}-\\d{7}/ -
護照(包含香港、澳門)
/(^[EeKkGgDdSsPpHh]\\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\\d{7}$)/ -
帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線組合
/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/ -
數字/貨幣金額(支持負數、千分位分隔符)
/(?:^[-]?[1-9]\\d{0,2}(?:$|(?:,\\d{3})*(?:$|(\\.\\d{1,2}$))))|(?:(?:^[0](\\.\\d{1,2})?)|(?:^[-][0]\\.\\d{1,2}))$/ -
數字/貨幣金額 (只支持正數、不支持校驗千分位分隔符)
/(?:^[1-9]([0-9]+)?(?:\\.[0-9]{1,2})?$)|(?:^(?:0){1}$)|(?:^[0-9]\\.[0-9](?:[0-9])?$)/ -
銀行卡號(10到30位, 覆蓋對公/私賬戶, 參考微信支付)
/^[1-9]\\d{9,29}$/ -
版本號格式必須為X.Y.Z
/^\\d+(?:\\.\\d+){2}$/ -
中文姓名
/^(?:[\\u4e00-\\u9fa5·]{2,16})$/ -
英文姓名
/(^[a-zA-Z]{1}[a-zA-Z\\s]{0,20}[a-zA-Z]{1}$)/ -
新能源車牌號
/[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領 A-Z]{1}[A-HJ-NP-Z]{1}(([0-9]{5}[DF])|([DF][A-HJ-NP-Z0-9][0-9]{4}))$/ -
非新能源車牌號
/^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領 A-Z]{1}[A-HJ-NP-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$/ -
車牌號(新能源+非新能源)
/^(?:[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領 A-Z]{1}[A-HJ-NP-Z]{1}(?:(?:[0-9]{5}[DF])|(?:[DF](?:[A-HJ-NP-Z0-9])[0-9]{4})))|(?:[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領 A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9 掛學警港澳]{1})$/ -
md5格式(32位)
/^[a-f0-9]{32}$/ -
迅雷鏈接
/^thunder:\\/\\/[a-zA-Z0-9]+=$/ -
ed2k鏈接(寬松匹配)
/^thunder:\\/\\/[a-zA-Z0-9]+=$/ -
磁力鏈接(寬松匹配)
/^magnet:\\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/ -
子網掩碼
/^(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])(?:\\.(?:\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])){3}$/ -
linux"文件夾”路徑
/^\\/(\\w+\\/?)+$/ -
linux"文件”路徑
/^\\/(\\w+\\/)+\\w+\\.\\w+$/ -
window下"文件夾”路徑
/^[a-zA-Z]:\\\\(?:\\w+\\\\?)*$/ -
window下"文件”路徑
/^[a-zA-Z]:\\\\(?:\\w+\\\\)*\\w+\\.\\w+$/ -
A股代碼
/^(s[hz]|S[HZ])(000[\\d]{3}|002[\\d]{3}|300[\\d]{3}|600[\\d]{3}|60[\\d]{4})$/
總結
- 上一篇: 评价——模糊综合评价
- 下一篇: gradle idea java ssm