1.正則:檢驗字串的規則
2.正則就是有元字元和修飾符構成:(寫在//裡面的都叫元字元)
元字元分兩種:
1種是有特殊意義的 例如:/\d/表示數字
2種沒特殊意義 沒有特殊意義就是字元本身
3.特殊意義的元字元
1.\ 轉義字元 轉義後面緊跟的字元的意義
2. \d 有意義(數字) \.無意義(是什麼就是什麼)
3. . 代表除了\n以外的任何單個字元
4.^以什麼什麼開頭,^讀音:kongchu
5.$ 以什麼結束, \$就是$本身,n$就是包含$的結尾;
6.| 代表或的意思;
4.帶有量詞意思的元字元:
1.? 代表0到1個;
*代表0到多個;
+代表1到多個
{}系列
5.系列元字元;
[xyz] 代表x或y或z中的任意乙個
[0-9] 代表0到9之間的任意乙個
[a-z] 代表小寫a到小寫z
[a-z] 代表大寫a到大寫z
[a-z] 代表大寫a到小寫z(不區分大小寫)
6.()分組系列:
(x|y) x或y中的其中乙個;
正則的細節:(正則定義的區別)
var reg=/hello/g (/hello/)代表元字元 不可以用字串拼接
字面量定義
var reg=new regexp("hello","g") ("hello" 代表字串,可以通過字串拼接)
物件例項定義
3. /./和/\./的區別?
. 任意字元
\.就是乙個點
4[.],[+]的意思
.和+在正則裡面是特殊的元字元;
. 是任意字元 +是 量詞代表多個
在[.]和[+]就是這個字元本身沒有意義;
5. |代表或
[2|3]代表2或3;
[12|34]代表1或2|3或4,或者12或者34
往往這種情況需要分組() (^(12)|(34)$)
6. -的問題:
/-/就是本身沒有意義
如果[0-9]代表 0到9之間的任意乙個數字;
正則的案例:
1.寫乙個12到65周歲的正則:
var reg=/^(1[2-9])|(2-5[0-9])|(6[0-5])/
var st="13"
console.log(reg.test(st))
2.寫乙個正常數字的正則;
var reg=/^[+-]?([0-9]|[1-9]\d+)(\.\d+)?$/
var st="-20.13"
console.log(reg.test(st))
3.寫乙個郵箱驗證
var reg=/^[a-za-z](\w|-)@((136|126).com)|(yeah.net))$/
var st="[email protected]"
console.log(reg.test(st))
總結:正則每寫完一部分就用()包起來 -不是特殊符
使用定時器的地方先清定時器,防止定時器疊加
正則細節要點
1.作為子模式使用 reg 3 abc t string 333abct if preg match reg,string,arr 結果是 array 0 333abct 1 abc 2 t 2.反向引用 取出子模式 再作為正規表示式的一部分 如果是preg replace 可以將子模式取出 在被替...
正則捕獲的細節及replace分析
1.var reg 與var reg 的區別?前者代表任意乙個字元,後者代表這個字串中得有乙個點 2.的使用 如果單獨的乙個字元後面帶?代表1個或0個這個字元的出現 列如 d?如果量詞 後面帶?取消正則的貪婪性 在捕獲的階段 3.捕獲 1.普通捕獲 正則的方法exec 字串的方法match 普通捕獲...
正規表示式細節
在正規表示式裡面表示可選擇有兩種表示式 1 ab ccc 匹配accc 或者bccc 2 a b ccc 匹配accc 或者bccc 另外 兩者之間沒有什麼區別 true false 說明捕獲組中記憶體中儲存的是捕獲的匹配內容,而不是捕獲的正規表示式片段 但是我們很快發現,在 只能匹配單個字元,如 ...