©
本文檔使用php中文網手册發布
JScript | 语言参考 |
返回根据正则表达式进行文字替换后的字符串的复制。
stringObj.replace(rgExp, replaceText)
stringObj
必选项。要执行该替换的String对象或字符串文字。该字符串不会被replace方法修改。
rgExp
必选项。为包含正则表达式模式或可用标志的正则表达式对象。也可以是String对象或文字。如果rgExp不是正则表达式对象,它将被转换为字符串,并进行精确的查找;不要尝试将字符串转化为正则表达式。
replaceText
必选项。是一个String对象或字符串文字,对于stringObj中每个匹配rgExp中的位置都用该对象所包含的文字加以替换。在 Jscript 5.5 或更新版本中,replaceText参数也可以是返回替换文本的函数。
replace方法的结果是一个完成了指定替换的stringObj对象的复制。
下面任意的匹配变量都能用来识别最新的匹配以及找出匹配的字符串。在需要动态决定替换字符串的文本替换中可以使用匹配变量。
字符 | 含义 |
---|---|
$$ | $(JScript 5.5 或更新版本) |
$& | 指定与整个模式匹配的stringObj的部分。 (JScript 5.5 或更新版本) |
$` | 指定由$&描述的匹配之前的stringObj部分。 (JScript 5.5 或更新版本) |
$' | 指定由$&描述的匹配之后的stringObj部分。 (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 个参数是在stringObj中匹配出现的偏移量,而第m+3 个参数为stringObj。结果为将每一匹配的子字符串替换为函数调用的相应返回值的字符串值。
Replace方法更新全局RegExp对象的属性。
下面的示例演示了replace方法将第一次出现的单词 "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; //
创建正则表达式模式。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; //
创建正则表达式模式。r =ss.replace(re,"$3$2$1"); //
交换每一对单词。return(r); //
返回结果字符串。 }
下面的示例(在 JScript 5.5 及更新版本中执行)执行的是从华氏到摄氏的转换,它演示了使用函数作为replaceText。要想知道该函数是如何工作的,传递一个包含数值的字符串,数值后要紧跟 "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."));
版本 1
exec 方法 | match 方法 | RegExp 对象 | search 方法 | String 对象的方法 | test 方法
应用于: String 对象