官术网_书友最值得收藏!

7.4 String對象中的模式匹配方法

1.match()方法

match()方法使用正則表達式模式對字符串進行查找,并將包含查找的結果作為數組返回。

語法格式:

    stringObj.match(rgExp)

參數說明:

stringObj:必選項,表示需要查找的String對象或字符串文字。

rgExp:必選項。為包含正則表達式模式和可用標志的正則表達式對象變量名或字符串文字。

如果match()方法沒有找到匹配,則返回null。如果找到匹配,則返回一個數組,并更新全局RegExp對象的屬性,以反映匹配結果。

match()方法返回的數組有兩個屬性:input和index。input屬性包含整個被查找的字符串。index屬性包含了整個被查找字符串中符合匹配的子字符串的位置。

如果沒有設置全局標志(g),數組的0元素包含整個匹配,而第1~n元素包含了匹配中曾出現過的任一個子匹配。這相當于沒有設置全局標志的exec()方法。如果設置了全局標志,元素0~n中包含所有匹配。

例如,下面的例子通過match()方法來查詢字符串,代碼如下:

運行結果:

    boy

例如,下面用帶g標志的match()方法返回多次出現的字符串“boy”,代碼如下。

運行結果:

    boy,boy
2.search()方法

search()方法用于返回與正則表達式查找內容相匹配的第一個子字符串的位置。

語法格式:

    stringObj.search(rgExp)

參數說明:

stringObj:必選項。要在其上進行查找的String對象或字符串文字。

rgExp:必選項。包含正則表達式模式和可用標志的正則表達式對象。

說明

search()方法指明是否存在相應的匹配。如果找到一個匹配,search()方法將返回一個整數值,指明這個匹配距離字符串開始的偏移位置。如果沒有找到匹配,則返回-1。

例如,下面應用search()方法查找內容匹配的第一個子字符串的位置,代碼如下:

運行結果:

    12
3.replace()方法

replace()方法使用表達式模式對字符串進行搜索,并將搜索到的內容用指定字符串替換,最后返回一個字符串對象,包含了替換后的內容。

語法格式:

    replace(rgExp.replaceText)

replace()方法執行后,將更新RegExp對象中的有關靜態屬性,以反映匹配情況。該方法需要兩個參數,其含義分別如下。

rgExp參數:搜索時要使用的表達式對象。如果是字符串,將不按正則表達式的方式進行模糊搜索,而是進行精確搜索。

replaceText參數:用于替換搜索內容的字符串,其中可以使用一些特殊字符組合來表示匹配變量。其中,$&是整個表達式模式在被搜索字符串中所匹配的字符串,$是表達式模式在被搜索字符串中所匹配的字符串左邊的所有內容,$’是表達式模式在被搜索字符串中所匹配的字符串右邊的所有內容,$$則是普通意義的“$”字符。

例如,應用replace()方法來替換字符串,代碼如下:

運行結果:

    字符串ab12cd34ef56被轉換為ab21cd43ef65
4.split()方法

split()方法可返回按照某種分割標識符將一個字符串拆分為若干個子字符串時所產生的子字符串數組。

語法格式:

    split([separator[,limit]])

separator是分割標識符參數,可以是多個字符或一個正則表達式,不作為返回的數組元素的一部分。參數limit用于限制返回元素的個數。

例如,下面的例子將實現應用split()方法分割字符串,代碼如下:

運行結果:

    計算機語言種類:JavaScript  ASP  JSP  Java
主站蜘蛛池模板: 津南区| 塘沽区| 无锡市| 太康县| 托里县| 栖霞市| 襄垣县| 饶河县| 杨浦区| 黔西县| 当雄县| 蕉岭县| 察雅县| 齐齐哈尔市| 柳江县| 萨迦县| 花莲县| 师宗县| 边坝县| 东明县| 扎鲁特旗| 越西县| 阳西县| 广饶县| 临漳县| 乃东县| 丰城市| 花莲县| 垦利县| 班玛县| 安仁县| 新和县| 罗田县| 科尔| 晋中市| 广汉市| 开平市| 共和县| 东宁县| 犍为县| 兴海县|