JS compile()方法:編譯正規表示式

2020-07-16 10:05:04
JavaScript 正規表示式中的 compile() 方法能夠重新編譯正規表示式,這樣在指令碼執行過程中可以動態修改正規表示式的匹配模式。

compile() 方法的用法與 RegExp() 建構函式的用法是相同的,不了解的讀者請轉到《在JS中使用正規表示式》。

compile() 的具體語法格式如下:

regexp.compile(regexp, modifier)

引數 regexp 表示正規表示式物件,或者匹配模式字串。當第 1 個引數為匹配模式字串時,可以設定第 2 個引數 modifier,使用它定義匹配的型別,如 "g" "i" "gi" 等。

範例

設計當匹配到第 3 個字母時,重新修改字元模式,定義在後續操作中,僅匹配大寫字母,結果就只匹配到 S 這個大寫字母。
var s = "JavaScript";  //測試字串
var r = /w/g;  //匹配模式
var n = 0;
while(r.test(s)) {
    if (r.lastIndex == 3) {
        r.compile(/[A-Z]/g);
        r.lastIndex = 3;
    }
    console.log("匹配文字 = " + RegExp.lastMatch + " r.lastIndex = " + r.lastIndex);
}
演示結果如下: