1、正則表達式
一、正則表達式包括兩部分:
① 定義正則表達式的規則; ② 正則表達式的模式(i/g/m);
二、聲明正則表達式:
① 字面量聲明:
var reg=/表達式規則/表達式模式;
eg: var reg= /white/g;
② 使用new關鍵字:
var reg=new RegExp("表達式規則","表達式模式");
eg: var reg=new RegExp("white","g");
三、正則表達式的經常使用模式:
① g:全局匹配。不加g默認爲非全局匹配,只匹配第一個符合要求的字符串。
"www".replace(/w/,"#"); -> #ww;
"www".replace(/w/g,"#"); -> ###;
② i:忽略大小寫。不加i,默認要求大小寫不匹配;
"aAa".replace(/A/,"#"); -> a#a;
"aAa".replace(/A/i,"#"); -> #Aa;
"aAa".replace(/A/gi,"#"); -> ###;
③ m:多行匹配模式。不帶m,則一個字符串只有一個開頭,一個結尾;
帶m後,若是字符串分爲多行,則每行都有一個開頭,一個結尾。
`abc `#bc
abc`.replaced(/^a/g,"#") -> abc`
`abc `#bc
abc`.replaced(/^a/gm,"#") -> #bc`
[Tips:如何寫多行字符串]
>>> 普通字符串中,插入\n 表示換行
>>> ES6中,容許使用反引號`包裹字符串,反引號包裹的字符串中,
會保留空格與回車。`abc
abc`
四、正則表達式的經常使用方法:
① test():檢測一個字符串,是否符合正則表達式的驗證,返回true或false;
eg: /white/.test("whiteWhitewhite"); -> true
② exec():檢測一個字符串,是否符合正則表達式的驗證。若是驗證成功,返回結果數
組;若是驗證失敗,返回null;
結果數組中:
index屬性:表示從字符串的第幾個字符,開始符合正則要求;
input屬性:返回完整的被檢索的字符串;
下標第0個:表示符合整個正則表達式的那部分字符;
下標第1個到第n個:表示符合正則的第1個到第n個子表達式的部分。
子表達式,就是正則中的()。也就是,正則中有幾個(), 結果
數組中就有幾個下標。
/12(3)(4)5/.exec("aaa12345");
[
0:12345,
1:3,
2:4,
index:3,
input:"aaa12345",
length:3,
]