JavaScript中replace函数方法是返回根据正则表达式进行文字替换后的字符串的复制。使用方法:
stringObj.replace(rgExp, replaceText)其中stringObj是必选项。要执行该替换的 String 对象或字符串文字。该字符串不会被 replace 方法修改。
字符 | 含义 |
$$ | $ (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 或更新版本) |
function ReplaceDemo(){另外, replace函数方法也可以替换模式中的子表达式。 下面的范例演示了交换字符串中的每一对单词:
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); // 返回替换后的字符串。
}
function ReplaceDemo(){下面的示例(在 JScript 5.5 及更新版本中执行)执行的是从华氏到摄氏的转换,它演示了使用函数作为 replaceText。要想知道该函数是如何工作的,传递一个包含数值的字符串,数值后要紧跟 "F" (例如 "Water boils at 212")。
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); // 返回结果字符串。
}
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."));