当前位置:首页 > JavaScript

js unescape 实现

2026-02-02 08:53:47JavaScript

unescape 函数的作用

unescape 是 JavaScript 的一个全局函数,用于解码由 escape 函数编码的字符串。它将十六进制编码的字符(如 %20)转换回原始字符(如空格)。

js unescape 实现

基本语法

unescape(encodedString)
  • encodedString:通过 escape 编码的字符串。

使用示例

解码包含 URL 编码的字符串:

js unescape 实现

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

替代方案

由于 unescape 已废弃(非严格模式下仍可用),推荐使用现代 API:

  • decodeURI:解码完整的 URI(不解码 #&= 等特殊字符)。
  • decodeURIComponent:解码 URI 的组成部分(包括所有特殊字符)。
const uriEncoded = "Hello%20World%21";  
console.log(decodeURIComponent(uriEncoded)); // 输出: "Hello World!"  

注意事项

  • unescape 不会解码 + 为空格(decodeURIComponent 也不会,需手动处理)。
  • 非 ASCII 字符(如中文)应优先使用 decodeURIComponent

手动实现 unescape

若需兼容旧代码,可手动实现类似逻辑:

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

总结

  • 优先使用 decodeURIComponent 替代 unescape
  • 遗留代码需处理时,注意非 ASCII 字符的兼容性。

标签: jsunescape
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Promis…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Pa…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document…

js实现类

js实现类

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

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaS…

js实现换肤

js实现换肤

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