返回根據(jù)正則表達式進行文字替換后的字符串的復(fù)制。
stringObj.replace(rgExp, replaceText)
replace 方法的結(jié)果是一個完成了指定替換的 stringObj 對象的復(fù)制。
下面任意的匹配變量都能用來識別最新的匹配以及找出匹配的字符串。在需要動態(tài)決定替換字符串的文本替換中可以使用匹配變量。
字符 | 含義 |
---|---|
$$ | $ (JScript 5.5 或更新版本) |
$& | 指定與整個模式匹配的 stringObj 的部分。(JScript 5.5 或更新版本) |
$` | 指定由 $& 描述的匹配之前的 stringObj 部分。(JScript 5.5 或更新版本) |
$' | 指定由 $& 描述的匹配之后的 stringObj 部分。(JScript 5.5 或更新版本) |
$n | 捕獲的第 n 個子匹配,此處 n 為從1到9的十進制一位數(shù)。(JScript 5.5 或更新版本) |
$nn | 捕獲的第 nn 個子匹配,此處 nn 為從01到99的十進制兩位數(shù)。(JScript 5.5 或更新版本) |
如果 replaceText 為函數(shù),對于每一個匹配的子字符串,調(diào)用該函數(shù)時帶有下面的 m+3 個參數(shù),此處 m 是在 rgExp 中捕獲的左括弧的個數(shù)。第一個參數(shù)是匹配的子字符串。接下來的 m 個參數(shù)是查找中捕獲的全部結(jié)果。第 m+2 個參數(shù)是在 stringObj 中匹配出現(xiàn)的偏移量,而第 m+3 個參數(shù)為 stringObj。結(jié)果為將每一匹配的子字符串替換為函數(shù)調(diào)用的相應(yīng)返回值的字符串值。
Replace 方法更新全局 RegExp 對象的屬性。
下面的示例演示了 replace 方法將第一次出現(xiàn)的單詞 "The" 替換為單詞 "A" 的用法。
function ReplaceDemo(){ var r, re; // 聲明變量。 var ss = "The man hit the ball with the bat.\n"; ss += "while the fielder caught the ball with the glove."; re = /The/g; // 創(chuàng)建正則表達式模式。 r =ss.replace(
re,
"A")
; // 用 "A" 替換 "The"。 return(r); // 返回替換后的字符串。 }
另外, replace 方法也可以替換模式中的子表達式。下面的范例演示了交換字符串中的每一對單詞:
function ReplaceDemo(){ var r, re; // 聲明變量。 var ss = "The rain in Spain falls mainly in the plain."; re = /(\S+)(\s+)(\S+)/g; // 創(chuàng)建正則表達式模式。 r =ss.replace(
re,
"$3$2$1")
; // 交換每一對單詞。 return(r); // 返回結(jié)果字符串。 }
下面的示例(在 JScript 5.5 及更新版本中執(zhí)行)執(zhí)行的是從華氏到攝氏的轉(zhuǎn)換,它演示了使用函數(shù)作為 replaceText。要想知道該函數(shù)是如何工作的,傳遞一個包含數(shù)值的字符串,數(shù)值后要緊跟 "F" (例如 "Water boils at 212")。
function f2c(s) { var test = /(\d+(\.\d*)?)F\b/g; // 初始化模式。 return(s.replace
(test,
function($0,$1,$2) {
return((($1-32) * 5/9) + "C");
}
)
); } document.write(f2c("Water freezes at 32F and boils at 212F."));
exec 方法 | match 方法 | RegExp 對象 | search 方法 | String 對象的方法 | test 方法
應(yīng)用于: String 對象