正則表達式
直接量語法
/pattern/attributes
創建 RegExp 對象的語法:
new RegExp(pattern, attributes);
五大屬性
global:如果設置了new RegExp(‘s’,’g’),g(全局)被設置,所以global為true;
ignoreCase:同上,ignoreCase,對應的是i(大小寫是否敏感);
lastIndex, var reg=/\d/g;
var r=reg.exec('a1b2c3');
console.log(reg.lastIndex); //2
r=reg.exec('a1b2c3');
console.log(reg.lastIndex); //4
multiline:同上上:multiline對應m(多行匹配)
Source:var str = "Visit W3School.com.cn";
var patt1 = new RegExp("W3S","g");
document.write("The regular expression is: " + patt1.source);// W3S
方法
Var reg = /\d/g;//正則表達式
Var str = ‘1c2v3r’;//你需要匹配的內容
RegExp 對象方法
RegExp對象方法就是 reg.fun(str)
Complie, 創建正則對象有兩種方法:字面量和構造函數。compile基本等同於構造方法方式,且已被廢棄。
Exec ,var result = reg.exec(str);它將返回一個數組
注釋:只能執行一次,返回的數組就是當前的匹配內容的信息
0,表示需要匹配的內容,index表示匹配的位置,input匹配的內容 ;
如果你想把全部的匹配出來:
Result:
Test: 返回值為true或者false
reg.test(str);
String對象方法
Var reg = /\d/;//正則表達式
Var str = ‘1c2v3r’;//你需要匹配的內容
String對象方法 str.fun(reg);與regExp對象方法相反
Search,search() 方法不執行全局匹配,它將忽略標志 g。它同時忽略 regexp 的 lastIndex 屬性,並且總是從字符串的開始進行檢索,這意味着它總是返回 stringObject 的第一個匹配的位置;它對i是支持的
它的返回值是檢索的位置,若沒有返回-1
Str.search(reg);//0;
Match, 返回數組,該方法類似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置,而是檢索出來的內容數組形式展現
Result:
注釋:(多個結果的返回,要加g,否知只返回第一個內容,若沒有匹配結果則返回null)
注意:對多個數字的匹配
若只是單個
Replace,一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。
Replace(reg/str, 替換的內容)
如果 regexp 具有全局標志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。
如果replace方法的第一個參數傳入的是帶分組的正則表達式,我們在第二個參數中可以使
用以下來獲取相應的分組內容
Result:@#1#@@#2#@@#3#@;
strObj.replace(regObj,function(){})
replace的fun方法
把replace方法的第二個參數傳入一個function,這個function會在每次匹配替換的時候調用,算是個每次替換的回調函數,我們使用了回調函數的第一個參數,也就是匹配內容,其實回調函數一共有四個參數
第一個參數很簡單,是匹配字符串
第二個參數是正則表達式分組內容,沒有分組則沒有該參數
第三個參數是匹配項在字符串中的index
第四個參數則是原字符串
自己嘗試一下輸出結果
Split, 用於把一個字符串分割成字符串數組,返回數組
Str.split(reg/需要分割的標識,取返回數組的長度);其方法類似js數組方法的操作;