HTML5,js正則表達式

HTML5,js正則表達式

1)正則表達式是一種表達文本模式

  • 字面量聲明固定正則表達式,/正則匹配模式/修飾符
  • 構造函數聲明動態正則表達式,new RegExp('正則匹配模式', '修飾符')

3)修飾符

  • i 表示忽略大小寫
  • g 全局匹配
  • m 換行匹配

4)只讀屬性

  • ignoreCase 返回一個布爾值,表示是否設置了i修飾符,該屬性只讀
  • global 返回一個布爾值,表示是否設置了g修飾符,該屬性只讀
  • multiline 返回一個布爾值,表示是否設置了m修飾符,該屬性只讀

5)方法

  • test() 正則對象的test方法返回一個布爾值,表示當前模式是否能匹配參數字符串
  • exec() 正則對象的exec方法,可以返回匹配結果。如果發現匹配,就返回一個數組,成員是每一個匹配成功的子字符串,否則返回null
  • compile() 修改正則表達式

6)預定義模式

  • \\d 匹配0-9之間的任一數字,相當於[0-9]
  • \\D 匹配所有0-9以外的字符,相當於[^0-9]
  • \\w 匹配任意的字母、數字和下劃線,相當於[A-Za-z0-9_]
  • \\W 除所有字母、數字和下劃線以外的字符,相當於[^A-Za-z0-9_]
  • \\s 匹配空格(包括製表符、空格符、斷行符等),相等於[\\t\\r\\n\\v\\f ]
  • \\S 匹配非空格的字符,相當於[^\\t\\r\\n\\v\\f ]
  • \\b 匹配詞的邊界
  • \\B 匹配非詞邊界,即在詞的內部
  • . 查找所有字符,除了換行和行結束符

7)量詞符

  • ? 問號表示某個模式出現0次或1次,等同於{0, 1}
  • * 星號表示某個模式出現0次或多次,等同於{0,}
  • + 加號表示某個模式出現1次或多次,等同於{1,}
  • n$ 匹配任何結尾為n的字符串
  • ^n 匹配任何開頭為n的字符串
  • ?=n 匹配任何其後緊接指定字符串n的字符串
  • ?!n 匹配任何其後沒有緊接指定字符串 n 的字符串

8)貪婪模式和懶惰模式

  • 貪婪模式 n.+ 或者 n.*
  • 懶惰模式 n.+? 或者 n.*?

9)組

  • 組匹配()內容
  • RegExp.$n 獲取第n個()中匹配的內容,n是從1開始的自然數,必須test()驗證之後執行

10)常用正則表達式

  • 驗證數字(含小數、正負數) /^(-|\\+)?[1-9]?(0|([1-9]+\\d*))(\\.?\\d+)?$/
  • 驗證郵箱 /^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/
  • 驗證手機號 /^(\\+86)?1[3456789]\\d{9}$/
  • 必須含有大寫字母,含有小寫字母,含有數字 /(?=.*[A-Z]+)(?=.*[0-9]+)(?=.*[a-z]+)/

11)支持正則表達式的字符串API

  • matct() 用於確定原字符串是否匹配某個子字符串,返回一個數組,成員為匹配的第一個字符串。如果沒有找到匹配,則返回null
  • search() 的用法等同於match,但是返回值為匹配的第一個位置。如果沒有找到匹配,則返回-1
  • replace() 用於替換匹配的子字符串,一般情況下只替換第一個匹配(除非使用帶有g修飾符的正則表達式
  • split() 按照給定規則分割字符串,返回一個由分割出來的子字符串組成的數組


分享到:


相關文章: