12個最常用的正則表達(dá)式,幫助你解決50%的問題

英文 | https://medium.com/frontend-canteen/you-dont-need-to-fully-understand-regex-you-just-need-to-know-these-10-most-used-expressions-197dd2397308
翻譯 | 楊小愛
坦率地說,我從來沒有理解過正則表達(dá)式,我花了很多時間學(xué)習(xí)它,但我仍然不明白。
后來我明白了一個道理:我真的不需要完全理解正則表達(dá)式的所有原理,把一些常用的正則表達(dá)式理解通透,因為我們真正使用的正則表達(dá)式數(shù)量有限,我只需將它們添加到我的筆記本中(甚至不需要記住)。
今天,我收集整理了一些web項目中經(jīng)常用到的正則表達(dá)式,我覺得可以解決50%以上的正則表達(dá)式問題。
數(shù)字的
01、僅匹配數(shù)字字符串
目標(biāo):
1231212321214353
/^\d+$/簡單解釋:
^ 表示字符串的開頭
\d+ 匹配一位或多位數(shù)字
$ 表示字符串的結(jié)尾
可視化:

用法:

234,124 包含非法字符 , ,因此它返回 false。
id12313 包含兩個非法字符 id ,因此它返回 false。
123.123113.140.43066123
/^\d+(\.?\d+)?$/\.匹配單個 char 。
? 表示可選。
() 表示一個組
(\.?\d)? 是一個可選組


目標(biāo):
123abc123abcacRa32EEEbytefishJack2022
正則表達(dá)式:
/^[a-zA-Z0-9]+$/[a-zA-Z0–9] 匹配所有字母和數(shù)字
可視化:

用法:

04、allow space
如果你想在字符串中留出空格,你可以像這樣寫正則表達(dá)式:
/^[a-zA-Z0-9\s]+$/\s 匹配空白。

用法:

05、電子郵件
電子郵件地址可能有多種格式,我們很難寫出完美匹配電子郵件地址的正則表達(dá)式。
如果我們添加一些約束,那么我們有以下寫法。
正則表達(dá)式1
^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$這是 RegularExpressionValidator 在 ASP.NET 中使用的一種。

用法:

正則表達(dá)式2
^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$簡單的電子郵件表達(dá)。不允許在域名中使用數(shù)字,并且不允許使用少于 2 個或多于 3 個字母的頂級域(在它們允許更多之前都可以)。

用法:

06、密碼
與電子郵件一樣,密碼可能有不同的規(guī)則。下面是一些常見的規(guī)則和相關(guān)的正則表達(dá)式。
規(guī)則1
^[a-zA-Z]\w{8,20}$在這個正則表達(dá)式中,密碼的第一個字符必須是字母,它必須包含至少 8 個字符且不超過 20 個字符,并且不能使用除字母、數(shù)字和下劃線以外的字符。

用法:

規(guī)則2:
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/至少 8 個字符
至少 1 個數(shù)字字符
至少 1 個小寫字母
至少 1 個大寫字母
至少 1 個特殊字符

07、用戶名
可能包含 _ 和 — 的字母數(shù)字字符串,長度為 3 到 16 個字符。
例子:
bytefishjon-snowRob_Stark
正則表達(dá)式:
/^[a-zA-Z0-9_-]{3,16}$/
用法:

08、網(wǎng)址
檢查字符串是否為 URL
/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)/
用法:

09、IP地址
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]?)$

IPv6
(([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]))10、日期
使用分隔符的日期格式 YYYY-MM-dd -
/([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/
用法:

日期格式 dd-MM-YYYY 使用分隔符 - 或 . /
/^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/

11、HTML 標(biāo)簽
將 HTML 標(biāo)記與屬性匹配:
/<\/?[\w\s]*>|<.+[\W]>/
用法:

12、電話號碼
美國電話號碼格式
目標(biāo):
123-456-7890(123) 456-7890123 456 7890123.456.7890+91 (123) 456-7890
正則表達(dá)式:
^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$
用法:

總結(jié)
以上就是我今天跟大家分享的12個常用的正則表達(dá)式,希望這些正則表達(dá)式對你有用。
最后,感謝你的閱讀。
學(xué)習(xí)更多技能
請點擊下方公眾號
![]()

