当前位置:首页 > 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
分享给朋友:

相关文章

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…

js实现图片滚动

js实现图片滚动

图片滚动的实现方法 使用CSS动画实现 通过CSS的animation和@keyframes可以实现简单的图片滚动效果。这种方法适合静态图片的无缝循环滚动。 <style> .scr…

js实现刷新页面

js实现刷新页面

刷新页面的方法 在JavaScript中,可以通过多种方式实现页面刷新。以下是几种常见的方法: 使用 location.reload() 调用 location.reload() 方法可以重新加载当…

js实现递归

js实现递归

递归的基本概念 递归是一种通过函数调用自身来解决问题的方法。在JavaScript中,递归通常用于处理具有重复子问题或分治结构的数据,例如树形结构、阶乘计算等。 递归的实现要点 基线条件(Base…

vue.js实现scrollTop

vue.js实现scrollTop

Vue.js 实现 scrollTop 的方法 使用原生 JavaScript 实现 通过 window.scrollTo 或 Element.scrollTop 实现滚动到指定位置。在 Vue 中可…