当前位置:首页 > JavaScript

js unescape 实现

2026-03-15 08:47:50JavaScript

实现 JavaScript 的 unescape 函数

unescape 函数用于解码由 escape 编码的字符串。它将十六进制编码的字符(如 %20)转换回原始字符(如空格)。以下是几种实现方式:

使用原生 unescape 函数

JavaScript 原生提供了 unescape 函数,可以直接使用:

js unescape 实现

const encodedStr = 'Hello%20World%21';
const decodedStr = unescape(encodedStr);
console.log(decodedStr); // 输出: "Hello World!"

手动实现 unescape

如果需要手动实现 unescape 的功能,可以通过正则表达式替换实现:

js unescape 实现

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

const encodedStr = 'Hello%20World%21';
const decodedStr = customUnescape(encodedStr);
console.log(decodedStr); // 输出: "Hello World!"

使用 decodeURIComponent

decodeURIComponent 是更现代的替代方案,但需要注意它不支持某些 escape 编码的字符(如 %uXXXX 格式):

const encodedStr = 'Hello%20World%21';
const decodedStr = decodeURIComponent(encodedStr);
console.log(decodedStr); // 输出: "Hello World!"

处理 %uXXXX 格式

如果需要处理 escape 特有的 %uXXXX 格式(Unicode 编码),可以扩展手动实现:

function fullUnescape(str) {
    return str.replace(/%u([0-9A-F]{4})|%([0-9A-F]{2})/gi, function(match, uHex, hex) {
        if (uHex) {
            return String.fromCharCode(parseInt(uHex, 16));
        } else {
            return String.fromCharCode(parseInt(hex, 16));
        }
    });
}

const encodedStr = 'Hello%20World%21%u4F60%u597D';
const decodedStr = fullUnescape(encodedStr);
console.log(decodedStr); // 输出: "Hello World!你好"

注意事项

  • unescape 是已废弃的函数,建议使用 decodeURIComponentdecodeURI
  • decodeURIComponent 无法解码 %uXXXX 格式,需手动处理。
  • 编码时推荐使用 encodeURIComponent 而非 escape

标签: jsunescape
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

jquery.js

jquery.js

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

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…