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() 按照給定規則分割字符串,返回一個由分割出來的子字符串組成的數組
閱讀更多 雨康 的文章