正則描述了一種字串匹配的模式,但對於很多人來說寫正則就是」蘭德里的折磨「吧。如果不是有需求頻繁要用,根本就不會想著要學它。本篇文章就給大家整理分享一些常用正規表示式,想要白嫖正則嗎?快來收藏吧!
想要白嫖正則是吧?本篇就一次給你個夠!先衝 99 個! (如果還覺得不夠就評論回饋後再加,本篇持續更新加碼!!)
另外1 個小tips,對正規閱讀有障礙的同學可以藉助這個網站jex.im/ regulex/,將正規視覺化,從此愛上讀正規!
例如:校驗信箱的正規:^\w ([- .]\w )*@\w ([-.]\w )*\.\w ([-.] \w )*$
視覺化後,直接看圖片說話,小白都會,真滴tql ! !
好了,衝了!
號碼相關
手機號碼(以1 開頭):
/^(?:(?:\ |00)86 )?1\d{10}$/
手機號碼(以13 至19 開頭):
/^(?:(?:\ |00) 86)?1[3-9]\d{9}$/
#手機號碼(以工信部公佈的手機號碼段開頭):
/^( ?:(?:\ |00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])| (?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/
國內固話號碼:
/\d{3}-\d{8}|\d{4}-\d{7}/
#信箱號碼:
/^\w ([- .]\w )*@\w ([-.]\w )*\.\w ([-. ]\w )*$/
郵遞區號:
/[1-9]\d{5}(?!\d)/
身分證號:
/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1 -9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/
#銀行卡號(公、私帳戶):
/^[1-9]\d{9,29}$/
車牌號碼:
/^[京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧使領][A-HJ-NP-Z][A -HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9掛學警港澳]$/
QQ 號:
/^[1-9][0-9]{4,10}$/
#微訊號:
/^[a-zA-Z ][-_a-zA-Z0-9]{5,19}$/
#版本編號( x.y.z ):
/^\d (?:\ .\d ){2}$/
合法帳號1(字母開頭,5-16位,允許字母數字下劃線):
/^[a- zA-Z][a-zA-Z0-9_]{4,15}$/
#合法帳號2(4-16位,允許字母,數字,底線,減號):
/^[a-zA-Z0-9_-]{4,16}$/
強密碼1(必須包含大小寫字母和數字的組合,不能使用特殊字符,長度在8-10之間):
/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z] ).{8,10}$/
強密碼2(必須包含字母、數字、特殊字元:**@#$%^& `~ ()- =* ):
/^(?![a-zA-Z] $)(?![A-Z0-9] $ )(?![A-Z\W_!@#$%^&* ~()- =] $)(?![a-z0-9] $)(?![a-z\\W_!@#$%^ & *~()- =] $)(?![0-9\W_!@#$%^&* ~()- =] $)[a-zA-Z0-9\\W_!@#$ %^&*~()- =]/
網址:
/^(((ht|f)tps?):\/\/)? (^!@#$%^&*?.\s-?\.) [a-z]{2,6}\/?/
網址帶連接埠號:
/^((ht|f)tps?:\/\/)?[\w-] (\.[\w-] ) :\d{1,5}\/?$/
ip-v4:
/\\b(?:(?: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]?)\\b/
ip-v6:
/(([0-9a-fA-F]{1 ,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|( [0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1, 4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){ 1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}( :[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a -fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}) {1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0 ,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}( (25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25 [0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1 ,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9] )\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])) /
數字相關
#只有數字:
/^[0-9]* $/
或/^\d{1,}$/
#整數:
/^-?[0-9]\d *$/
正整數:
/^\ ?[1-9]\d*$/
-
非正整數:
/^-[1-9]\d*|0$/
#負整數:
/^-[ 1-9]\d*$/
非負整數:
/^\d $/
- ##浮點數:
/^(-?\d )(\.\d )?$/
- #正浮點數:
/^[ 1-9]\d*\.\d*|0\.\d*[1-9]\d*$/
- 負浮點數:
/^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)/
- #小數:
/^-?\d \.\d $/
- #正數/負數/小數:
/^(\-|\ ) ?\d (\.\d )?$/
- 正實數保留小數點後2 位:
/^[0-9] (.[0- 9]{2})?$/
#
正實數保留小數點後1 到3 位元:
/^[0-9] (.[0-9]{1,3})?$/
n 位數字:
/^\d{n}$/
#至少n 位數字:
/ ^\d{n,}$/
-
m 至n 位的數字:
/^\d{m,n}$/
#數字和字母至少包含其一:
/^[A-Za-z0-9] $/
必須包含數字和字母:
/^(?=.*[a-zA-Z])(?=.*\d). $/
md5值:
/^([a-f\d]{32}|[A-F\d]{32})$/
base64 值:
/ ^\s*data:(?:[a-z] \/[a-z0-9- .] (?:;[a-z-] =[a-z0-9-] )?)?(?:;base64) ?,([a-z0-9!$&',()* ;=\-._~:@/?%\s]*?)\s*$/i
字元相關
m 至n 位元的字元:
/^.{3,20}$/
英文字母字元:
/^[A-Za-z] $/
大寫英文字母字元:
/^[A-Z] $/
小寫英文字母字元:
/^[a-z] $/
漢字:
/^[\u4e00-\u9fa5]{0,}$/
全角符號:
/[\uFF00- \uFFFF]/
半角符號:
/[\u0000-\u00FF]/
#漢字、英文、數字、底線至少其一:
/^[\u4E00-\u9FA5A-Za-z0-9_] $/
#不包含字元「~ 」 :
/[^~\x22] /
#字元連續重複:
/(.)\1 /
⌚時間相關
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$/
24小時制時間(HHmmss):
/([0-1]?[0-9]|2[0-3])([0-5] [0-9])([0-5][0-9])$/
#日期1(yyyy-MM-dd,如2222-01-01 ,年份必4位):
/^\d{4}-\d{1,2}-\d{1,2}/
日期2(如333-01-01,年份可小於4位數):
/^\d{1,4}(-)(1[0-2]|0?[1-9])\1 (0?[1-9]|[1-2]\d|30|31)$/
#日3(yyyyMMdd,如20220202):
/^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[ 1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12 ][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1 -9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[ 13579][26])|((0[48]|[2468][048]|[3579][26])00))0229))$/
日期時間1(YYYYMMDD HH:mm:ss):
/^\d{4}([/:-\S])(1[0-2]|0?[1-9])\1 (0?[1-9]|[1-2]\d|30|31) (?:[01]\d|2[0-3]):[0-5]\d:[0-5 ]\d$/
日期時間2:
/^[1-9]\d{3}-(0[1-9]|1[ 0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s (20|21|22|23|[0-1]\d ):[0-5]\d:[0-5]\d$/
#一年12 個月((01~09 或1~12)) :
/^(0?[1-9]|1[0-2])$/
一個月31 天(01~09 或1~ 31):
/^((0?[1-9])|((1|2)[0-9])|30|31)$/
-
有31 天的月份:
/^(0?[13578]|1[02])$/
有30 天月的份:
/(0[469]|11)-(0[1-9]|[12][0-9]|30)/
2 月28 天("02-28"):
/^02-(0[1-9]|[1][0-9]|2[0-8])$/
閏年:
/^(((19|20)([13579][26]|[2468][048]|0[48]))|(2000))$/
閏年2 月(如2008-02-01):
/^(((19|20)([13579][26]|[2468] [048]|0[48]))|(2000))-0?2-(0?[1-9]|[12]\d)$/
日期(包括閏年、大小月的判斷):
/((((19|20)\d{2})-(0?(1|[3-9])|1[012]) -(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)| (((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([ 13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$/
#年份區間-年(如19 年至20 年):
/^((19|20)\d{2})$/
年份區間-年月(如1999-01):
/^((((19|20)\d{2})-(0?[13-9]|1[012]))|(((19|20 )\d{2})-(0?[13578]|1[02]))|(((19|20)\d{2})-0?2)|((((19|20)( [13579][26]|[2468][048]|0[48]))|(2000))-0?2))$/
#年份區間-年月日(如1999-01-01):
/^((((19|20)\d{2})-(0?[13-9]|1[012])-(0 ?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|((( 19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][ 26]|[2468][048]|0[48]))|(2000))-0?2-29))$/.test('2021-02-21')$/
#年份區間-年月日(間隔符號可為- / 或空):
/^(?:(?:1[6-9]|[2-9][ 0-9])[0-9]{2}([-/.]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[ 1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(? :0?[13578]|1[02])\1(?:31))|(?:(?:1[6-9]|[2-9][0-9])(?:0[ 48]|[2468][048]|[13579][26])|(?:16|[2468][048]|[3579][26])00)([-/.]?)0?2 \2(?:29))$/
程式相關
- ##16進位顏色:
/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
- 擷取網頁顏色碼:
/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/
影片連結位址:
/^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
mac 位址:
/^( (([a-f0-9]{2}:){5})|(([a-f0-9]{2}-){5}))[a-f0-9]{2}$/ i
子網路遮罩:
/^((?:(?:25[0-5]|2[0-4]\\d| [01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d ))$/
檔案副檔名效驗:
/^([a-zA-Z]\\:|\\\\)\\\\ ([^\\\\] \\\\)*[^\\/:*?"|] \\.txt(l)?$/
-
java套件名稱(x.x.x):
/^([a-zA-Z_]\w*) ([.][a-zA-Z_]\w*) $/
#xml檔:
/^([a-zA-Z] -?) [a-zA-Z0-9] \\.[x|X][m|M ][l|L]$/
html 註解:
/<!--[\s\S]*?-->/g
html 標籤1:
/]*>(.*?)?/
html 標籤2:
/]*>.*?\1>|/
#首尾空白字元:
/^\s*|\s*$/
找出CSS屬性:
/^\\s*[a-zA-Z\\-] \\s*[:]{1}\\s[a-zA-Z0-9\ \s.#] [;]{1}/
擷取頁面超連結:
/(<a>]*)(href="https?:\\/\\/)((?!(?:(?:www\\.)?'.implode('|(?: www\\.)?', $follow_list).'))[^" rel="external nofollow" ] )"((?!.*\\brel=)[^>]*)(?:[^ >]*)>/</a>
#提取網頁圖片:
/\\]*[ src] *= *[\\"\\']{0,1}([^\\"\\'\\\ >]*)/
迅雷連結:
/^thunder:\/\/[a-zA-Z0-9] =$/
ed2k連結:
/^ed2k :\/\/|file|. |\/$/
linux"檔案"路徑:
/^\/(\w \/) \w \.\w $/
window下"檔案"路徑:
/^[a-zA-Z]:\\(?:\w \\ )*\w \.\w $/
生活相關
- ##金額(寬鬆,可為負、首位可為0,支援千分位分隔):
/^-?\d (,\d{3})*(\.\d{1,2})?$/
- 金額(大於0 ,兩位小數):
/(^[1-9]{1}[0-9]*$)|(^[0- 9]*\.[0-9]{2}$)/
- #金額(嚴格,不為負、小數點後最多兩位,首位不為0) :
/(^[1-9]([0-9] )?(\.[0-9]{1,2})?$)|(^(0){1}$)|( ^[0-9]\.[0-9]([0-9])?$)/
- #護照:
/(^[EeKkGgDdSsPpHh] \d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa]) |(1[45]))\d{7}$)/
- #香港身分證:
/^[a-zA-Z]\d{ 6}\([\dA]\)$/
- 澳門身分證:
/^[1|5|7]\d{6}\( \d\)$/
- 灣灣身分證:
/^[a-zA-Z][0-9]{9}$/
- 股票代號:
/^(s[hz]|S[HZ])(000[\d]{3}|002[\d]{3} |300[\d]{3}|600[\d]{3}|60[\d]{4})$/
- #不含abc 的單字:
/\b((?!abc)\w) \b/
- #100.未完待續......
#小結:
本篇淺淺的整理了一波正則,其中許多本瓜也是邊看邊學,借助jex .im/regulex/,太棒了!
如果有補充的,歡迎留言留言,或有發現錯誤的,歡迎提出來,馬上訂正。希望能對你的正規學習、使用有所幫助哈~原文網址:https://juejin.cn/post/7119242343798013959更多程式相關知識,請訪問:
程式設計教學! !

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Dreamweaver Mac版
視覺化網頁開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver CS6
視覺化網頁開發工具