replace 方法

返回一个字符串的副本,该字符串的文本已被使用正则表达式或搜索字符串替换。

function replace(rgExp : RegExp, replaceText : String) : String

实参

  • rgExp
    必选。 包含正则表达式模式和适用标志的 Regular Expression 对象的实例。 也可以是 String 对象或文本。 如果 rgExp 不是 Regular Expression 对象的实例,它将被转换为字符串,并对结果进行精确的搜索;字符串将不会被尝试转化为正则表达式。

  • 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 是当前字符串对象中发生匹配位置的偏移量,而参数 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 212F”)。

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."));

要求

版本 1

应用于:

String 对象

请参见

参考

exec 方法

match 方法

RegExp 对象

search 方法

test 方法