String類型定義了幾個用于在字符串中匹配模式的方法。第一個方法就是match(),在字符串上調(diào)用這個方法,本質(zhì)上與調(diào)用RegExp的exec()方法相同。match()方法只接受一個參數(shù),要么是—個正則表達(dá)式,要么是一個RegExp對象。來看下面的例子:
var text="cat, bat, sat, fat";
var pattern=/.at/;
//與pattern.exec (text)相同
var matches=text.match(pattern);
alert(matches.index); //0
alert (matches[O]); //"cat"
alert (pattern.lastlndex); //o
本例中的match()方法返回了一個數(shù)組;如果是調(diào)用RegExp對象的exec()方法并傳遞本例中的字符串作為參數(shù),那么也會得到與此相同的數(shù)組:數(shù)組的第一項(xiàng)是與整個模式匹配的字符串,之后的每一項(xiàng)(如果有)保存著與正則表達(dá)式中的捕獲組匹配的字符串。
另一個用于查找模式的方法是search(),這個方法的唯一參數(shù)與match()方法的參數(shù)相同:由字符串或RegExp對象指定的一個正則表達(dá)式。search()方法返回字符串中第一個匹配項(xiàng)的索引;南昌網(wǎng)站建設(shè)公司技術(shù)人員提醒,如果沒有找到匹配項(xiàng),則返回-1。而且,search()方法始終是從字符串開頭向后查找模式??聪旅娴睦樱?
var text = "cat, bat, sat, fat";
var pos = text.search(/at/);
alert(pos); //1
這個例子中的search()方法返回1,即"at"在字符串中第一次出現(xiàn)的位置。
為了簡化替換子字符串的操作,ECMAScript提供了replace型多法。這個方法接受兩個參數(shù):第一個參數(shù)可以是一個RegExp對象或者一個字符串(這個字符串不會被轉(zhuǎn)換成正則表達(dá)式),第二個參數(shù)可以是一個字符串或者一個函數(shù)。如果第一個參數(shù)是字符串,那么只會替換第一個子字符串。要想替換換所有子字符串,唯一的辦法就是提供一個正則表達(dá)式,而且要指定全局(g)標(biāo)志,如下所示:
var text="cat, bat, sat, fat";
var result = text.replace("at","ond");
alert(result); //"cond,bat,sat,fat"
result = text.replace(/at/g,"ond");
alert(result) // "Cond,bond,aond,fond"
在這個例子中,首先傳人replace()方法的是字符串"at"和替換用的字符串"ond"。替換的結(jié)果是把"cat"變成了"cond",但字符串中的其他字符并沒有受到影響。然后,通過將第一個參數(shù)修改為帶有全局標(biāo)志的正則表達(dá)式,就將全部"at"都替換成了"ond"。
本資料僅限南昌網(wǎng)絡(luò)公司百恒網(wǎng)絡(luò)技術(shù)部內(nèi)部人員交流使用,方便內(nèi)部技術(shù)人員學(xué)習(xí)交流,請勿作其他用途.謝謝支持! 南昌網(wǎng)站建設(shè)第一品牌,專業(yè)專注于南昌網(wǎng)站設(shè)計(jì)|南昌做網(wǎng)站,為用戶提供高品質(zhì)的網(wǎng)絡(luò)產(chǎn)品和優(yōu)質(zhì)的服務(wù)是我們始終追求的目標(biāo)!