Unescape html-символы
Я пытаюсь сохранить значения из базы данных в HTML5 data
атрибутов.
Благодаря этому ответу я могу избежать их, но как мне это изменить?
2 ответа
Решение
Просто измените функцию:
function unescapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, "\"")
.replace(/'/g, "'");
}
Чтобы обработать все потенциальные символы (вместо "известного" списка), используйте естественное экранирование браузера, позволяя ему преобразовывать строки HTML в текст с помощью этого:
function unescapeHTML(string) {
var elt = document.createElement("span");
elt.innerHTML = string;
return elt.innerText;
}
Рекомендации:
document.createElement
- https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement*.innerHTML
- https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML*.innerText
- https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText