js unescape实现
实现 JavaScript 的 unescape 函数
unescape 是一个用于解码由 escape 编码的字符串的 JavaScript 函数。尽管在现代 JavaScript 中已被弃用,但仍可以通过自定义函数实现类似功能。
使用 decodeURIComponent 或 decodeURI
现代 JavaScript 推荐使用 decodeURIComponent 或 decodeURI 替代 unescape。它们能更好地处理 UTF-8 编码的字符串。
function customUnescape(str) {
return decodeURIComponent(str);
}
手动实现 unescape
如果需要精确模拟旧的 unescape 函数行为,可以手动处理十六进制和 Unicode 转义序列:
function customUnescape(str) {
return str.replace(/%([0-9A-F]{2})/g, function(match, hex) {
return String.fromCharCode(parseInt(hex, 16));
});
}
处理特殊字符
旧的 unescape 函数还会解码 + 为空格,可以扩展上述函数:

function customUnescape(str) {
return str.replace(/\+/g, ' ')
.replace(/%([0-9A-F]{2})/g, function(match, hex) {
return String.fromCharCode(parseInt(hex, 16));
});
}
注意事项
- 新的
decodeURIComponent比旧的unescape更安全,推荐用于现代 Web 开发。 - 旧的
unescape不会解码@、*、-、_、.、/等字符,而decodeURIComponent会。 - 如果必须完全模拟旧行为,需要更复杂的正则表达式来匹配所有边缘情况。






