replace 方法
傳回字串的複本的文字由規則運算式 (Regular Expression) 或搜尋字串取代。
function replace(rgExp : RegExp, replaceText : String) : String
引數
rgExp
必要項。 包含有規則運算式模式和適用旗標的規則運算式物件的執行個體。 也可以是一個 String 物件或常值。 如果 rgExp 不是規則運算式物件的執行個體,會轉換成字串,然後為結果展開確實的搜尋;不會將字串轉成規則運算式。replaceText
必要項。 String 物件或字串常值,包含用來取代現有字串物件中與 rgExp 比對成功的每個項目文字。 JScript 5.5 或以後的版本中,replaceText 引數也可以是傳回取代文字的函式。
備註
replace 方法執行的結果是一個已完成所有指定取代動作的現有字串物件。
任何下列的比對變數可以用來指出來源處最近的相符項目及字串。 比對變數可以用在文字取代當中,其中的取代字串是動態決定的。
字元 |
意義 |
---|---|
$$ |
$ (JScript 5.5 或以後版本) |
$& |
說明現有字串物件與整個模式相符合的部分 (JScript 5.5 或以後版本) |
$` |
說明現有字串物件中位於 $& 所敘述符合項目之前的部分 (JScript 5.5 或以後版本) |
$' |
說明現有字串物件中位於 $& 所敘述符合項目之後的部分 (JScript 5.5 或以後版本) |
$n |
第 n 個擷取的子符合項目,其中 n 是從 1 到 9 的單一十進位數字。 (JScript 5.5 或以後版本) |
$nn |
第 nn 個擷取的子符合項目,其中 nn 是從 01 到 99 二位數十進位數字。 (JScript 5.5 或以後版本) |
如果 replaceText 是函式,每個相符的子字串都會以之後的 m + 3 引數來呼叫函式,m 是 rgExp 中左擷取括號的數目。 第一個引數是相符的子字串。 下個 m 引數是搜尋所找到的所有符合項目。 引數 m + 2 是符合的現有字串物件的位移 (Offset),而引數 m + 3 是現有的字串物件。 字串值是利用函式呼叫的對應傳回值來取代每一個相符子字串而產生。
replace 方法更新全域 RegExp 物件的屬性。
範例
以下範例示範如何使用 replace 方法,將所有的 "the" 取代成 "a"。
function ReplaceDemo()
{
var s = "The batter hit the ball with the bat ";
s += "and the fielder caught the ball with the glove.";
// Replace "the" with "a".
var re = /the/g;
var r = s.replace(re, "a");
return(r);
}
此外,replace 方法也可取代模式中的子運算式。 下列範例會交換字串中的每一對文字。
function ReplaceDemo(){
var s = "The quick brown fox jumps over the lazy dog.";
// Create regular expression pattern.
var re = /(\S+)(\s+)(\S+)/g;
// Exchange each pair of words.
var r = s.replace(re, "$3$2$1");
return(r);
}
// Output: quick The fox brown over jumps lazy the dog.
下列範例適用於 JScript 5.5 (含) 以後版本,它會將華氏溫度轉換成攝氏溫度, ,以示範如何使用傳回取代文字的函式。 若想知道此函式如何運作,請傳入一個字串,其中包含的數字緊鄰字母 "F" (例如,"Water boils at 212C")。
function f2c(s1) {
// Initialize pattern.
var test = /(\d+(\.\d*)?)F\b/g;
// Use a function for the replacement.
var s2 = s1.replace(test,
function($0,$1,$2)
{
return((($1-32) * 5/9) + "C");
}
)
return s2;
}
print(f2c("Water freezes at 32F and boils at 212F."));