javascript - 使用 JS - jQuery,如何取消转义 html 并将 `quotes & <>` 放回字符串中?

标签 javascript jquery escaping

本质上,我想撤消我发现的 escapeHTML() 函数 below , 在我使用它之后。

function escapeHtml(unsafe) {
    return unsafe
         .replace(/&/g, "&amp;")
         .replace(/</g, "&lt;")
         .replace(/>/g, "&gt;")
         .replace(/"/g, "&quot;")
         .replace(/'/g, "&#039;");
 }

function unescapeHtml(safe) {
    return safe
         .replace("&amp;", /&/g)
         .replace("&lt;", /</g)
         .replace( "&gt;", />/g)
         .replace("&quot;", /"/g)
         .replace("&#039;", /'/g);
 }


var a = escapeHtml("<div> yo & yo squirrl's </div>");
var b = unescapeHtml(a);
console.log(a);
console.log(b);//should log "<div> yo & yo squirrl's </div>"

我尝试了明显但没有效果。 http://jsfiddle.net/ej6bX/

最佳答案

你需要使用

function unescapeHtml(safe) {
    return safe.replace(/&amp;/g, '&')
        .replace(/&lt;/g, '<')
        .replace(/&gt;/g, '>')
        .replace(/&quot;/g, '"')
        .replace(/&#039;/g, "'");
}

使用 jQuery 的更清晰的方法可能是

function escapeHtml(unsafe) {
    return $('<div />').text(unsafe).html()
}

function unescapeHtml(safe) {
    return $('<div />').html(safe).text();
}

演示:Fiddle

关于javascript - 使用 JS - jQuery,如何取消转义 html 并将 `quotes & <>` 放回字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22279231/

相关文章:

javascript - 检查任何对象的 'undefined' 或 'null'

javascript - jQuery scrollTop 到容器 div 的顶部

javascript - knockout 'attr' 是否总是假设输入需要转义,是否可以将其关闭?

JavaScript JSON 转义安全

javascript - 如何允许所有域/网站从他们的网页访问我的 chrome 扩展程序

javascript - 将 JSON 字符串解析为数组

javascript - Highchart 图例对齐

javascript - DOM 的点击事件不起作用,而异步函数正在文档就绪中执行

javascript - JS/JQuery - 展开/折叠工作时出现问题

php - LIKE 表达式中的 MySQL 连字符