js 实现unescape
实现 unescape 的方法
在 JavaScript 中,unescape 是一个用于解码通过 escape 编码的字符串的全局函数。由于现代 JavaScript 已弃用 unescape,可以使用以下替代方法实现类似功能。

使用 decodeURIComponent
decodeURIComponent 可以解码由 encodeURIComponent 编码的字符串,适用于大部分 URL 编码场景。

const encodedStr = "Hello%20World%21";
const decodedStr = decodeURIComponent(encodedStr);
console.log(decodedStr); // 输出: "Hello World!"
使用正则表达式替换
对于简单的 unescape 场景,可以通过正则表达式手动替换编码字符。
function customUnescape(str) {
return str.replace(/%([0-9A-F]{2})/g, (match, p1) => {
return String.fromCharCode(parseInt(p1, 16));
});
}
const encodedStr = "Hello%20World%21";
const decodedStr = customUnescape(encodedStr);
console.log(decodedStr); // 输出: "Hello World!"
处理特殊字符
如果需要处理更多特殊字符(如 Unicode 编码),可以扩展正则表达式。
function unescapeUnicode(str) {
return str.replace(/\\u([0-9A-F]{4})/gi, (match, p1) => {
return String.fromCharCode(parseInt(p1, 16));
});
}
const encodedStr = "Hello\\u0020World\\u0021";
const decodedStr = unescapeUnicode(encodedStr);
console.log(decodedStr); // 输出: "Hello World!"
注意事项
decodeURIComponent无法解码某些特殊字符(如%xx格式的非 URL 编码字符),需结合正则处理。- 如果字符串包含混合编码(如 URL 编码和 Unicode 编码),需分步处理。
- 始终验证输入字符串的格式,避免解码失败。






