jquery 转义
jQuery 转义方法
在 jQuery 中,转义通常用于处理特殊字符,防止 XSS(跨站脚本攻击)或确保字符串在 HTML、URL 或正则表达式中正确显示。以下是几种常见的转义场景及方法:
HTML 转义
将特殊字符转换为 HTML 实体,防止脚本注入或显示问题。

function escapeHtml(text) {
return $('<div>').text(text).html();
}
// 示例
var unsafeString = '<script>alert("XSS")</script>';
var escapedString = escapeHtml(unsafeString); // 输出: <script>alert("XSS")</script>
URL 转义
使用 encodeURIComponent 对 URL 参数进行编码,避免非法字符破坏 URL 结构。

var urlParam = 'name=John Doe&age=30';
var escapedParam = encodeURIComponent(urlParam); // 输出: name%3DJohn%20Doe%26age%3D30
正则表达式转义
对字符串中的正则元字符进行转义,确保字符串在正则中作为字面量使用。
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
// 示例
var regexString = 'file.*.txt';
var escapedRegex = escapeRegExp(regexString); // 输出: file\.\*\.txt
反转义 HTML
将 HTML 实体转换回原始字符。
function unescapeHtml(text) {
return $('<div>').html(text).text();
}
// 示例
var escapedText = '<div>Hello</div>';
var originalText = unescapeHtml(escapedText); // 输出: <div>Hello</div>
注意事项
- 直接使用 jQuery 的
.text()方法插入内容时,会自动转义 HTML 字符,避免 XSS。 - 避免使用
.html()直接插入未转义的用户输入内容。 - 对于复杂场景(如富文本),需结合白名单过滤库(如 DOMPurify)。






