首頁  >  文章  >  99+ 個常用正規表示式,一次白嫖個夠!

99+ 個常用正規表示式,一次白嫖個夠!

青灯夜游
青灯夜游轉載
2022-07-19 11:10:422620瀏覽

正則描述了一種字串匹配的模式,但對於很多人來說寫正則就是」蘭德里的折磨「吧。如果不是有需求頻繁要用,根本就不會想著要學它。本篇文章就給大家整理分享一些常用正規表示式,想要白嫖正則嗎?快來收藏吧!

想要白嫖正則是吧?本篇就一次給你個夠!先衝 99 個! (如果還覺得不夠就評論回饋後再加,本篇持續更新加碼!!)

另外1 個小tips,對正規閱讀有障礙的同學可以藉助這個網站jex.im/ regulex/,將正規視覺化,從此愛上讀正規!

例如:校驗信箱的正規:^\w ([- .]\w )*@\w ([-.]\w )*\.\w ([-.] \w )*$

99+ 個常用正規表示式,一次白嫖個夠!

視覺化後,直接看圖片說話,小白都會,真滴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

更多程式相關知識,請訪問:

程式設計教學! !

陳述:
本文轉載於:juejin.cn。如有侵權,請聯絡admin@php.cn刪除