Skip to content Skip to sidebar Skip to footer

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}
'; v

Solution 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 = "$$&lt;Anonymous&gt;"//Encoded form of "$<Annonymous>";
html = htmlstring.replace(/{NAME}/g,name);
document.write(html);

See String#replace reference:

Pattern Inserts$$        Inserts a "$". $&        Inserts the matched substring.

Solution 2:

From Docs of replace, $& Inserts the matched substring.

enter image description here

You can use the replace callback to get the $& literal in the replaced string.

var htmlstring = "<div>{NAME}</div>";
var name = "$&lt;Anonymous&gt;"//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"