当前位置:首页 > JavaScript

js unescape 实现

2026-02-02 08:53:47JavaScript

unescape 函数的作用

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

基本语法

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

使用示例

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

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

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

js 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实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

jquery js

jquery js

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