Replace String Containing $& In Javascript Regex
I need to replace a html string with a dynamic value.This dynamic value(HTML encode) is to replace a pattern in the html string. var htmlstring = '
{NAME}
'; vSolution 1:
In JavaScript, to replace with $
, you need to escape the dollar symbol with another dollar symbol, otherwise, $&
is treated as a backreference to the whole matched value (i.e. {NAME}
here).
You need to use
var name = "$$<Anonymous>"
^^
var htmlstring = "<div>{NAME}</div>";
var name = "$$<Anonymous>"//Encoded form of "$<Annonymous>";
html = htmlstring.replace(/{NAME}/g,name);
document.write(html);
Pattern Inserts
$$
Inserts a "$".$&
Inserts the matched substring.
Solution 2:
From Docs of replace
, $&
Inserts the matched substring.
You can use the replace callback to get the $&
literal in the replaced string.
var htmlstring = "<div>{NAME}</div>";
var name = "$<Anonymous>"//Encoded form of "$<Annonymous>";var html = htmlstring.replace(/{NAME}/g, function(m) {
return name;
});
console.log(html);
document.write(html);
Post a Comment for "Replace String Containing $& In Javascript Regex"