tsh*_*tsh 9 javascript regex replace escaping
我想用另一个字符串替换字符串.我发现当replaceValue包含时"$",替换将失败.所以我想逃跑"$"的"$$"第一.代码如下所示:
var str = ..., reg = ...;
function replaceString(replaceValue) {
str.replace(reg, replaceValue.replace(/\$/g, '$$$$'));
}
Run Code Online (Sandbox Code Playgroud)
但我觉得它很难看,因为我需要写4美元符号.
我还需要逃避任何其他角色吗?有没有更好的方法来做到这一点?
Leo*_*nid 19
有一种方法可以replace让我们不用担心逃避任何事情.
var str = ..., reg = ...;
function replaceString(replaceValue) {
return str.replace(reg, function () { return replaceValue });
}
Run Code Online (Sandbox Code Playgroud)
您转义替换字符串的方法是正确的.
根据第15.5.4.11的String.prototype.replace ECMAScript规范版本5.1,所有特殊替换序列始于$($&,$`,$',$n,$nn),并$$指定一个$在更换.
因此,如果替换文本是按照字面意思对待的话,就像你现在正在做的那样,$以双倍的方式逃避所有$$.
就我所见,没有其他简洁的方法可以进行替换.