Reputation: 51292
I have a HTML input text, and its values are populated from a related div. My problem is that the div contains characters like &
which will display correcly as '&'
sign in div but when copied to text box the text '&'
will be dispalyed
How can i convert &
to &
and '<'
to '<'
, ' '
to ' '
???
Upvotes: 3
Views: 2827
Reputation: 1109272
You thus want to unescape HTML entities. With plain JS you can use this snippet:
function unescapeHTML(html) {
var div = document.createElement("DIV");
div.innerHTML = html;
return ("innerText" in div) ? div.innerText : div.textContent; // IE | FF
}
And with jQuery the following one:
function unescapeHTML(html) {
return $("<div />").html(html).text();
}
But you can also just fix this problem during the step that you "copy" the div's content into the input element's value. Instead of grabbing HTML, just grab text. Instead of element.innerHTML
, that'll be element.innerText
for IE or element.textContent
for real browsers.
No, you can't and shouldn't do this (reliably) with regex.
Upvotes: 5
Reputation: 16077
I am not sure how you are accessing data but a possible solution could be use of innerText
property instead on innerHtml
Upvotes: 1