js正則表達(dá)式匹配字符串

正則表達(dá)式在js編程中應(yīng)用非常廣泛,js正則又稱為規(guī)則表達(dá)式,程序員通常使用正則表達(dá)式來(lái)檢索或替換那些符合某個(gè)規(guī)則的文本。總之,正則表達(dá)式是學(xué)習(xí)編程的基本語(yǔ)法。下面小編給大家介紹下js正則匹配之模式匹配的方法。

1、JS中的正則表達(dá)式用“Regexp”的對(duì)象表示,可以用Regexp()構(gòu)造函數(shù)來(lái)創(chuàng)建Regexp對(duì)象。文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39029.html

例如用來(lái)尋找“所有以s結(jié)尾的字符串”,var pattern=new RegExp(""s$);文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39029.html

除了以這種方式來(lái)創(chuàng)建還可以用直接量的語(yǔ)法來(lái)直接創(chuàng)建,就上面的例子可以這么寫(xiě):var pattern=/s$/;正則表達(dá)式的直接量定義在雙斜杠中。文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39029.html

2、JS中用String對(duì)象來(lái)執(zhí)行正則表達(dá)式模式尋找和檢索替換操作的方法:文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39029.html

search()方法是支持正則表達(dá)式中最簡(jiǎn)單的方法,參數(shù)是一個(gè)正則表達(dá)式,返回的是第一個(gè)與之匹配的字串的起始位置,如果找不到匹配的字串返回-1(不支持全局檢索,忽略正則表達(dá)式參數(shù)修飾符g)。圖一為具體代碼,圖二為執(zhí)行結(jié)果文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39029.html

js正則表達(dá)式匹配字符串-1文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39029.html

js正則表達(dá)式匹配字符串-2文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39029.html

3、String對(duì)象之replace()方法,用來(lái)執(zhí)行檢索替換操作。第一個(gè)參數(shù)是正則表達(dá)式,第二個(gè)參數(shù)是要替換的字符串。修飾符帶g則源字符串中的所有與模式匹配的子串都將用第二個(gè)參數(shù)替換;修飾符不帶g則替換所匹配的第一個(gè)子串。文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39029.html

js正則表達(dá)式匹配字符串-3文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39029.html

js正則表達(dá)式匹配字符串-4文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39029.html

4、String對(duì)象之math()方法,它是最常用的正則表達(dá)式方法。只有一個(gè)正則表達(dá)式參數(shù)參數(shù),返回的是一個(gè)由檢索結(jié)果組成的數(shù)組。如果該正則表達(dá)式設(shè)置了修飾符g,則該方法返回了所有檢索結(jié)果。

自定義函數(shù)functi0n matchtest(){

var text="wo11a22d122n,b33232u";

var mat=text.match(/d+/g);

alert(mat);

}

在body中加按鈕

運(yùn)行結(jié)果將“11,22,122,33232”這些字符串返回了。

js正則表達(dá)式匹配字符串-5

5、正則表達(dá)式是RegExp對(duì)象來(lái)表示的,創(chuàng)建RegExp對(duì)象時(shí),第一個(gè)參數(shù)包含了正則表達(dá)式的主題部分(需要注意的是不論是字符串的直接量還是正則表達(dá)式都是用“”作為轉(zhuǎn)義字符的前綴,所以在RegExp創(chuàng)建對(duì)象時(shí)候使用到轉(zhuǎn)義字符是必須用“\”)。RegExp第二個(gè)參數(shù)是可選的,它指的是正則表達(dá)式的修飾符(只能傳g、i、m或者他們的組合)。

實(shí)例:查找2個(gè)數(shù)字的正則表達(dá)式

functi0n createRegExp(){

var text="w11i22d122n,b33232d";

var reg=new RegExp("\d{2}","g");

var mat=text.match(reg);

alert(mat);

}

執(zhí)行結(jié)果“11,22,12,33,23”

js正則表達(dá)式匹配字符串-6

6、正則表達(dá)式屬性:

global,只讀的布爾值,說(shuō)明這個(gè)表達(dá)式是否帶有修飾符g;

ignoreCase,只讀的布爾值,說(shuō)明這個(gè)表達(dá)式是否帶有修飾符i;

multiline,只讀的布爾值,說(shuō)明這個(gè)表達(dá)式是否帶有修飾符m;

source,只讀字符串,包含正則表達(dá)式文本;

lastIndex,可讀寫(xiě)整數(shù),如果帶有修飾符g則這個(gè)屬性存儲(chǔ)在整個(gè)字符串下次檢索的開(kāi)始位置。

實(shí)例:

functi0n zzbdssx(){

var reg=new RegExp("\d{2}","g");

alert("是否帶有修飾符g:"+reg.global+"rn是否帶有修飾符i:"+

reg.ignoreCase+"rn是否帶有修飾符m:"+reg.multiline+

"rn正則表達(dá)式文本:"+reg.source+"rn下個(gè)位置:"+reg.lastIndex);

}

js正則表達(dá)式匹配字符串-7

7、RegExp方法總結(jié)之exec()方法:對(duì)制定的字符串執(zhí)行正則表達(dá)式,沒(méi)找到任何匹配返回null,找到了返回一個(gè)數(shù)組,不帶g也返回一個(gè)數(shù)組,也沒(méi)有全局匹配。測(cè)試代碼如下:

functi0n exectest(){

var reg=new RegExp("\d{2}");//,"g");

var text="w11ab22dn122n,u33232u";

alert(reg.exec(text));

}

js正則表達(dá)式匹配字符串-8

8、RegExp方法總結(jié)之test()方法:對(duì)某個(gè)字符串進(jìn)行檢測(cè),包含一個(gè)正則表達(dá)式匹配結(jié)果返回true。測(cè)試代碼如下:

functi0n testtest(){

var reg=new RegExp("\d{2}");//,"g");

var text="w11ab22dn122yn,bu33232d";

alert("執(zhí)行結(jié)果:"+reg.test(text));

}

js正則表達(dá)式匹配字符串-9

以上就是js正則匹配之模式匹配的方法,對(duì)js正則匹配不熟悉的新手們,趕緊來(lái)練習(xí)操作下吧。

繼續(xù)閱讀
我的微信
微信掃一掃
weinxin
我的微信
惠生活福利社
微信掃一掃
weinxin
我的公眾號(hào)
 

發(fā)表評(píng)論

匿名網(wǎng)友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

拖動(dòng)滑塊以完成驗(yàn)證