正則表達式在js編程中應用非常廣泛,js正則又稱為規則表達式,程序員通常使用正則表達式來檢索或替換那些符合某個規則的文本??傊齽t表達式是學習編程的基本語法。下面小編給大家介紹下js正則匹配之模式匹配的方法。
1、JS中的正則表達式用“Regexp”的對象表示,可以用Regexp()構造函數來創建Regexp對象。文章源自四五設計網-http://www.wasochina.com/39029.html
例如用來尋找“所有以s結尾的字符串”,var pattern=new RegExp(""s$);文章源自四五設計網-http://www.wasochina.com/39029.html
除了以這種方式來創建還可以用直接量的語法來直接創建,就上面的例子可以這么寫:var pattern=/s$/;正則表達式的直接量定義在雙斜杠中。文章源自四五設計網-http://www.wasochina.com/39029.html
2、JS中用String對象來執行正則表達式模式尋找和檢索替換操作的方法:文章源自四五設計網-http://www.wasochina.com/39029.html
search()方法是支持正則表達式中最簡單的方法,參數是一個正則表達式,返回的是第一個與之匹配的字串的起始位置,如果找不到匹配的字串返回-1(不支持全局檢索,忽略正則表達式參數修飾符g)。圖一為具體代碼,圖二為執行結果文章源自四五設計網-http://www.wasochina.com/39029.html
文章源自四五設計網-http://www.wasochina.com/39029.html
文章源自四五設計網-http://www.wasochina.com/39029.html
3、String對象之replace()方法,用來執行檢索替換操作。第一個參數是正則表達式,第二個參數是要替換的字符串。修飾符帶g則源字符串中的所有與模式匹配的子串都將用第二個參數替換;修飾符不帶g則替換所匹配的第一個子串。文章源自四五設計網-http://www.wasochina.com/39029.html
文章源自四五設計網-http://www.wasochina.com/39029.html
文章源自四五設計網-http://www.wasochina.com/39029.html
4、String對象之math()方法,它是最常用的正則表達式方法。只有一個正則表達式參數參數,返回的是一個由檢索結果組成的數組。如果該正則表達式設置了修飾符g,則該方法返回了所有檢索結果。
自定義函數functi0n matchtest(){
var text="wo11a22d122n,b33232u";
var mat=text.match(/d+/g);
alert(mat);
}
在body中加按鈕
運行結果將“11,22,122,33232”這些字符串返回了。
5、正則表達式是RegExp對象來表示的,創建RegExp對象時,第一個參數包含了正則表達式的主題部分(需要注意的是不論是字符串的直接量還是正則表達式都是用“”作為轉義字符的前綴,所以在RegExp創建對象時候使用到轉義字符是必須用“\”)。RegExp第二個參數是可選的,它指的是正則表達式的修飾符(只能傳g、i、m或者他們的組合)。
實例:查找2個數字的正則表達式
functi0n createRegExp(){
var text="w11i22d122n,b33232d";
var reg=new RegExp("\d{2}","g");
var mat=text.match(reg);
alert(mat);
}
執行結果“11,22,12,33,23”
6、正則表達式屬性:
global,只讀的布爾值,說明這個表達式是否帶有修飾符g;
ignoreCase,只讀的布爾值,說明這個表達式是否帶有修飾符i;
multiline,只讀的布爾值,說明這個表達式是否帶有修飾符m;
source,只讀字符串,包含正則表達式文本;
lastIndex,可讀寫整數,如果帶有修飾符g則這個屬性存儲在整個字符串下次檢索的開始位置。
實例:
functi0n zzbdssx(){
var reg=new RegExp("\d{2}","g");
alert("是否帶有修飾符g:"+reg.global+"rn是否帶有修飾符i:"+
reg.ignoreCase+"rn是否帶有修飾符m:"+reg.multiline+
"rn正則表達式文本:"+reg.source+"rn下個位置:"+reg.lastIndex);
}
7、RegExp方法總結之exec()方法:對制定的字符串執行正則表達式,沒找到任何匹配返回null,找到了返回一個數組,不帶g也返回一個數組,也沒有全局匹配。測試代碼如下:
functi0n exectest(){
var reg=new RegExp("\d{2}");//,"g");
var text="w11ab22dn122n,u33232u";
alert(reg.exec(text));
}
8、RegExp方法總結之test()方法:對某個字符串進行檢測,包含一個正則表達式匹配結果返回true。測試代碼如下:
functi0n testtest(){
var reg=new RegExp("\d{2}");//,"g");
var text="w11ab22dn122yn,bu33232d";
alert("執行結果:"+reg.test(text));
}
以上就是js正則匹配之模式匹配的方法,對js正則匹配不熟悉的新手們,趕緊來練習操作下吧。


評論