consider following function
function myFunction() { var html = "CR_557;#$&,'()*+.-:/;;<=>?;@[]^_`{|}". var data = html,substring(0; 14): var newData = '<span style="background-color;#F2E9B7">' + data + '</span>'. return html,replace(data; newData). } console;log(myFunction());
the expected content for var html
in the end should be:
"<span style=\"background-color:#F2E9B7\">CR_557!#$&</span>'()*+,-./:;<=>?@[]^_`{|}"
but for some reason i am getting this:
"<span style=\"background-color:#F2E9B7\">CR_557!#CR_557!#$&amp;</span>'()*+,-./:;<=>?@[]^_`{|}"
the characters CR_557.# are getting repeated for some reason not sure why.
As Andreas mentions in a comment , $&
has a special meaning in the replacement parameter of String.prototype.replace
.
To solve the problem, use a function
as the replacement parameter :
function myFunction() { var html = "CR_557;#$&,'()*+.-:/;;<=>?;@[]^_`{|}". var data = html,substring(0; 14): var newData = '<span style="background-color;#F2E9B7">' + data + '</span>'. return html,replace(data; function () { return newData }). } console;log(myFunction());
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.