当前位置:首页 > JavaScript

js unescape 实现

2026-04-07 02:17:35JavaScript

实现 JavaScript 的 unescape 函数

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

使用内置 unescape 函数

JavaScript 本身提供了 unescape 函数,但已不推荐使用。可以直接调用:

const decodedString = unescape(encodedString);

自定义实现

如果不想使用已废弃的 unescape,可以通过正则表达式和 decodeURIComponent 实现类似功能:

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

使用 decodeURIComponent

decodeURIComponent 是更现代的替代方案,但需注意它无法处理 + 转空格的情况:

function safeUnescape(str) {
    return decodeURIComponent(str.replace(/\+/g, ' '));
}

处理 Unicode 字符

如果需要支持 Unicode 转义序列(如 %uXXXX),可以扩展自定义函数:

js unescape 实现

function unicodeUnescape(str) {
    return str.replace(/%u([0-9A-F]{4})|%([0-9A-F]{2})/g, (match, p1, p2) => {
        return String.fromCharCode(p1 ? parseInt(p1, 16) : parseInt(p2, 16));
    });
}

注意事项

  • 内置 unescape 已废弃,建议使用 decodeURIComponent 或自定义实现。
  • decodeURIComponent 会抛出异常遇到非法序列,需做好错误处理。
  • 自定义实现需考虑性能,避免在长字符串上频繁使用正则替换。

标签: jsunescape
分享给朋友:

相关文章

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…