当前位置:首页 > 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实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…