首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jQuery转义HTML字符串

使用jQuery转义HTML字符串
EN

Stack Overflow用户
提问于 2008-08-24 10:52:42
回答 27查看 719.7K关注 0票数 637

有没有人知道用jQuery从字符串中转义HTML的简单方法?我需要能够传递任意字符串,并将其正确转义以便在HTML页面中显示(防止JavaScript/HTML注入攻击)。我确信有可能通过扩展jQuery来实现这一点,但目前我对框架的了解还不够多。

EN

回答 27

Stack Overflow用户

回答已采纳

发布于 2008-08-24 17:22:15

由于您使用的是jQuery,因此可以只设置元素的text属性:

代码语言:javascript
运行
复制
// before:
// <div class="someClass">text</div>
var someHtmlString = "<script>alert('hi!');</script>";

// set a DIV's text:
$("div.someClass").text(someHtmlString);
// after: 
// <div class="someClass">&lt;script&gt;alert('hi!');&lt;/script&gt;</div>

// get the text in a string:
var escaped = $("<div>").text(someHtmlString).html();
// value: 
// &lt;script&gt;alert('hi!');&lt;/script&gt;
票数 468
EN

Stack Overflow用户

发布于 2012-08-20 16:21:06

还有the solution from mustache.js

代码语言:javascript
运行
复制
var entityMap = {
  '&': '&amp;',
  '<': '&lt;',
  '>': '&gt;',
  '"': '&quot;',
  "'": '&#39;',
  '/': '&#x2F;',
  '`': '&#x60;',
  '=': '&#x3D;'
};

function escapeHtml (string) {
  return String(string).replace(/[&<>"'`=\/]/g, function (s) {
    return entityMap[s];
  });
}
票数 635
EN

Stack Overflow用户

发布于 2008-12-17 10:28:45

代码语言:javascript
运行
复制
$('<div/>').text('This is fun & stuff').html(); // "This is fun &amp; stuff"

来源:http://debuggable.com/posts/encode-html-entities-with-jquery:480f4dd6-13cc-4ce9-8071-4710cbdd56cb

票数 185
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档