日期:2014-05-16  浏览次数:20352 次

javascript replace的问题
alert("abcdefg".replace("c","h$&j"));
为什么输出的是abhcjdefg
而不是abh$&jdefg

------解决方案--------------------
$$ $ (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(){
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); // 返回结果字符串。
}


看完以上的文档解释,你懂得。。