- *通配符
- ?0個或這沒有
- +1個或者多個
- {n}幾個
- []或者
- ()就是區域
js中正則表達式
標示符:g(全局替換),i(ignore,忽略大小寫),m(多行搜索,當字符串有多行的時候)
var reg = \bis\b;
//這樣,is是個單詞,這種寫法
正則表達式由兩種基本字符類型組成:
字符:* + ? $ ^ . | \ () {} []
- 原義文本字符
- 元字符(有特殊含義的非字母字符,\b單詞邊界,\n...之類的)
常用類
用js寫正則的時候,把正則表達式寫在//里面:
- 一般情況下,正則表達式一個字符對應字符串的一個字符。
- 表達式ab\t的含義:"ab"+"tab鍵制表符"。
- [],或者的意思,比如[abc],就是a或b或c。
- 方向類。^,在[]里面才是取反的意思 ,[^abc],不是字符a或b或c的內容。
- 范圍類。[a-z],從字母a到字母z。可以連著寫[a-zA-Z],忽略大小寫字母。如果想匹配”-“,那么直接加在后面[a-z-]即可。
- 預定義類。.:除了回車和換行之外的所有字符,\d:數字字符,\D:非數字字符,\s:空白符(換行、制表符等),\S:非空白符,\w:單詞字符(字符、數字和下劃線),\W:非單詞字符
- 邊界。^:開始,$:結束,\b:單詞邊界,\B:非單詞邊界。
- 量詞。?:0次或者1次,*:0次或多次,+:一次或多次,{n}:n次,{n,m}:n到m此,{n,}:最少出現n次。
- 貪婪模式和非貪婪模式。/\d{3,5}/,貪婪模式:貪婪模式。/\d{3,5}?/,非貪婪模式,非貪婪模式。
- 分組。():分組,就是將小括號里面作為整體, |:或,反向引用:$n來取值,忽略分組:在分組內加問好(?:)
- 前瞻。在匹配的時候要求后面一個是什么數據,比如/w(?=\d),單詞的前面是個數字。
- 對象屬性。可以讀取g,i,m等屬性,ture或者false。
- search,match,