当前位置:首页 > JavaScript

js 实现unescape

2026-03-02 04:42:24JavaScript

unescape 方法的作用

unescape 方法用于解码通过 escape 编码的字符串,将十六进制序列转换回原始字符。该方法已被废弃,但在某些旧代码中可能仍会遇到。

原生 unescape 的实现

现代 JavaScript 中可以使用 decodeURIComponent 或 decodeURI 替代 unescape,但若需完全还原 unescape 的行为,可参考以下实现:

function customUnescape(str) {
  return str.replace(/%([0-9A-F]{2})/g, function(match, p1) {
    return String.fromCharCode(parseInt(p1, 16));
  });
}

处理特殊字符的情况

unescape 不会解码加号(+)为空格,这与 decodeURIComponent 不同。若需要完全兼容旧版行为:

function legacyUnescape(str) {
  return str.replace(/%([0-9A-F]{2})/g, function(match, p1) {
    const charCode = parseInt(p1, 16);
    return charCode ? String.fromCharCode(charCode) : match;
  });
}

替代方案推荐

对于新项目建议使用标准 API:

  • decodeURIComponent 解码完整 URI 组件
  • decodeURI 解码完整 URI
// 示例用法
const encoded = 'Hello%20World%21';
console.log(decodeURIComponent(encoded)); // 输出 "Hello World!"

注意事项

unescape 已被从 ECMAScript 标准中移除,仅保留在浏览器中用于向后兼容。在 Node.js 环境中需要通过上述 polyfill 实现相同功能。

js 实现unescape

对于包含非ASCII字符的字符串,推荐使用 encodeURIComponent/decodeURIComponent 组合替代旧的 escape/unescape 方法。

标签: jsunescape
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js如何实现继承

js如何实现继承

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

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…