正則表達式基礎,高頻知識點

  • 2019 年 11 月 6 日
  • 筆記

1.常用元字符

  • d:表示任意數字
  • w:表示A至Z,a至z,0至9和下劃線這些常用的字符
  • s:表示一切不可見字符(不可見字符指在編輯器里顯示不出來的,例如空格,回車,換行,tab製表符)
  • 。:表示除回車 r和換行 n之外的一切字符。
  • b:邊界(常用字符和不常用字符邏輯上的分割)

2.表示位置的元字符

  • ^:修飾出現在它後邊的字符。表示出現在後邊的字符必須是字符串的第一位。
  • $:修飾出現在它前邊的字符,表示出現在它前邊必須是字符串的最後一位。

3.表示數量的元字符

  • {n}:n是一個非負整數,匹配確定的n次
  • {n,m}:n和m可以合併非負整數,其中n <= m,至少匹配n次最多匹配m次。
  • {n,}:n是一個非負整數,表示至少匹配n次。
  • *表示匹配0次或多次,等價於{0,}
  • +表示匹配一次或多次,等價於{1,}
  • ?表示出現0次或1次,等價於{0,1}

4.常用修飾符

  • 整體匹配修飾符g
  • 不區分大小寫修飾符i
  • 行首行尾修飾符m

5.正則中兩種表示或運算的方式| []

  • 區別:把| []表示任意字符中選其一。ab| bc表示匹配ab或bc。[abcd]表示從abcd中佔據一個。

6.用正則表達所有的字符

  • / [ d D] /; 大寫的D表示非數字字符。即所有字符。/[sS]/;所有不可見字符和所有可見字符(不可見字符是在編輯器中不顯示的字符,例如空格,回車,tab等)。//[ w W] /;所有常用字符和非常用字符

7.反字符集合[^ abc]:

  • ^在正則表達式開始部分的時候表示開頭的意思,例如/ ^ c /表示開頭是c;但是在字符集合中,它表示的是類似「非」的意思,例如[^ abc]就表示不能是[^ 0-9]表示非數字。[^ az]表示非小寫字符,以此類推

8.常用正則

  • 有效數字的正則,不可以以0開頭,可以是小數,可以有+或—號 /^[+-]?(d|([1-9]d+))(.d+)?$/
  • 漢字 /u4e00-u9fa5/
  • 匹配18-65 /^((1[8-9])|([2-5]d)|(6[0-5]))$/
  • 同時包含數字和字母的用戶名長度在8-15之間 /^(?!d+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{8,15}$/
  • 去掉首位空間 /^ +| +$/g
  • 去掉中間多餘空間 / +/g

作者 | 大神神碼 | 螞蟻開源社區大神,資深前端工程師