tsh tsh - 1 month ago 8
Javascript Question

javascript - Better Way to Escape Dollar Signs in the String Used By String.prototype.replace

I want to replace a string by another. I found when the replaceValue contains

"$"
, the replace will fail. So I am trying to escape
"$"
by
"$$"
first. The code is looks like this:

var str = ..., reg = ...;
function replaceString(replaceValue) {
str.replace(reg, replaceValue.replace(/\$/g, '$$$$'));
}


But I think it is ugly since I need to write 4 dollar signs.

Is there any other charactors that I need to escape? And is there any better way to do this?

Answer

There is a way to call replace that allows us not to worry about escaping anything.

var str = ..., reg = ...;
function replaceString(replaceValue) {
  return str.replace(reg, function () { return replaceValue });
}