1. 程式人生 > >淺談正則表達式

淺談正則表達式

關鍵字 dex a-z abc regexp 下標 style clas div

正則表達式

1.正則表達式的聲明:
  (1)字面量聲明: /正則表達式規則/匹配模式 var reg = /^abc$/i
  (2)new關鍵字聲明: var reg = new RegExp("^abc$","i")
2.正則表達式的常用模式
  (1)g表示全局匹配,不加g表示只匹配第一個符合要求的字符串。
    "aaa".replace(/a/,"*") ---> "*aa"
    "aaa".replace(/a/g,"*") ---> "***"
(2)i表示忽略大小寫匹配。默認要求大小寫也必須符合正則要求。
    "aAa".replace(/A/,"*") --->"a*a"


    "aAa".replace(/A/i,"*") --->"*aa"
    "aAa".replace(/A/gi,"*") --->"***"
(3)m表示多行匹配模式。如果不帶m表示一個字符串只有一個開頭一個結尾,如果帶m,那麽對於多行字符串可以有多個開頭多個結尾。

[多行字符串]
  ①字符串中用\n表示換行:"abc\nabc".replace(/^a/gm,"*");
  ②ES6中可以使用``表示字符串,這種字符串支持直接換行。

3.reg.test(要比較的字符串):檢測一個字符串是否符合正則要求, 返回true/false。
    reg.exec(要比較的字符串):檢測一個字符串是否符合正則要求,符合返回數組,不符合返回null。

  返回數組的格式:
    ①index屬性:表示字符串中第幾個字符開始匹配正則。
    ②input屬性:表示完整的被檢索字符串。
    ③下標第0個:表示符合正則要求的字符串子串。
    ④下標從1到最後:表示匹配正則中的小括號()包裹的字符串子串,也就是說正則中有n個小括號,返回的數組中就有n個下標。

技術分享圖片

技術分享圖片

技術分享圖片

常用的檢驗

//郵箱驗證
/^\w+@[a-zA-Z0-9]+\.[a-zA-Z]{2,3}(\.[a-zA-Z]{2,3})?$/

//校驗18位身份號
/^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$/

//
校驗手機號 /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$/ //驗證年齡,年齡範圍允許是0-120 /^(0|[1-9]|[1-9]\d|1[01]\d|120)$/

推薦一個建議正則表達式的網址:https://regexper.com/

技術分享圖片

淺談正則表達式