在前一節(jié)中了解了 test 方法和 exec 方法。這一節(jié)認識一下字符串的 str 方法。
使用字符串的正則表達式方法
除了 test() 和 exec() 方法, string 對象也提供了4個使用正則表達式的方法。
具體見圖

具體的每一條我們一一驗證
-
match(pattern)
match(pattern) 是返回 pattern 的字串或者 null 具體代碼見下圖var pattern=/xiancai/;
var str='咸菜 is a breakfast,Xiancai is a name';
alert( str.match(pattern));
具體的 alert 是
因為是沒有 xiancai 這個字符所以返回 null。如果將上面的代碼做出改變。var pattern=/xiancai/g;
var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
alert( str.match(pattern));

上面的代碼中加入了 g 全局匹配,這樣就有數組 xiancai,xiancai 出現了 如果要看類型的話可以在代碼中加入 typeof 來查看,打印的就會是 object。
var pattern=/xiancai/g;
var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
alert(typeof str.match(pattern));
從圖可以看出來是 object 類型

或者是用這樣的代碼將數組打印出來證明是數組。
var pattern=/xiancai/g;
var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
var a=str.match(pattern);
alert (a[1]);

-
replace(pattern,relacement)
replace(pattern,relacement) 是用 relacement 將 pattern 替換掉。var pattern=/xiancai/g;
var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
alert(str.replace(pattern,'Xiancai'));//返回替換后的字符。

這時候我開啟了全局,會替換所有匹配的字符串。如果沒有匹配全局則是替換第一個參數。
-
使用 search 來查找匹配的數組
var pattern=/xiancai/g;
var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
alert(str.search(pattern));
返回第一個匹配到的位置,這時候不會查找到第二個 xiancai
如果找不到就返回 -1;具體有興趣可以自己試試。

-
split 拆分字符串作為數組
var pattern=/xiancai/g;
var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
alert(str.split(pattern)); //這里我們匹配了xiancai,我們看看會打印什么

這時候就看到 1 方框和 2 方框里面是“,,”和“.,”說明把字符串拆分成了數組。
