使用 jQuery 转义 HTML 字符串
2022-08-29 22:38:18
有谁知道一种简单的方法可以从jQuery中的字符串中转义HTML?我需要能够传递任意字符串并正确转义它以显示在HTML页面中(防止JavaScript / HTML注入攻击)。我确信可以扩展jQuery来做到这一点,但我目前对框架的了解还不够多,无法实现这一点。
有谁知道一种简单的方法可以从jQuery中的字符串中转义HTML?我需要能够传递任意字符串并正确转义它以显示在HTML页面中(防止JavaScript / HTML注入攻击)。我确信可以扩展jQuery来做到这一点,但我目前对框架的了解还不够多,无法实现这一点。
var entityMap = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": ''',
'/': '/',
'`': '`',
'=': '='
};
function escapeHtml (string) {
return String(string).replace(/[&<>"'`=\/]/g, function (s) {
return entityMap[s];
});
}
由于您使用的是 jQuery,因此只需设置元素的 text
属性:
// 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"><script>alert('hi!');</script></div>
// get the text in a string:
var escaped = $("<div>").text(someHtmlString).html();
// value:
// <script>alert('hi!');</script>