当前位置:首页 > JavaScript

js 实现unescape

2026-01-31 13:29:35JavaScript

实现 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 编码),可以扩展正则表达式。

js 实现unescape

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 编码),需分步处理。
  • 始终验证输入字符串的格式,避免解码失败。

标签: jsunescape
分享给朋友:

相关文章

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现 拖动

js实现 拖动

实现拖动的步骤 HTML 结构 创建一个可拖动的元素和一个放置区域: <div id="draggable" draggable="true">拖动我</div> <d…

js 实现全屏

js 实现全屏

使用 requestFullscreen 方法 通过调用元素的 requestFullscreen 方法可以实现全屏。该方法兼容现代浏览器,但不同浏览器可能需要前缀。 const element =…

js 实现验证码

js 实现验证码

实现验证码的 JavaScript 方法 生成随机验证码 验证码通常由随机字符(数字、字母或混合)组成。以下代码生成一个 6 位随机验证码(数字和字母混合): function generateCa…