当前位置:首页 > JavaScript

js unescape实现

2026-03-15 09:09:45JavaScript

实现 JavaScript 的 unescape 函数

unescape 是一个用于解码由 escape 编码的字符串的 JavaScript 函数。尽管在现代 JavaScript 中已被弃用,但仍可以通过自定义函数实现类似功能。

使用 decodeURIComponentdecodeURI

现代 JavaScript 推荐使用 decodeURIComponentdecodeURI 替代 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 函数还会解码 + 为空格,可以扩展上述函数:

js 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 会。
  • 如果必须完全模拟旧行为,需要更复杂的正则表达式来匹配所有边缘情况。

标签: jsunescape
分享给朋友:

相关文章

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…