当前位置:首页 > JavaScript

js unescape实现

2026-03-15 09:09:45JavaScript

实现 JavaScript 的 unescape 函数

unescape 是一个用于解码由 escape 编码的字符串的 JavaScript 函数。尽管在现代 JavaScript 中已被弃用,但仍可以通过自定义函数实现类似功能。

js unescape实现

使用 decodeURIComponentdecodeURI

现代 JavaScript 推荐使用 decodeURIComponentdecodeURI 替代 unescape。它们能更好地处理 UTF-8 编码的字符串。

js unescape实现

function customUnescape(str) {
    return decodeURIComponent(str);
}

手动实现 unescape

如果需要精确模拟旧的 unescape 函数行为,可以手动处理十六进制和 Unicode 转义序列:

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

处理特殊字符

旧的 unescape 函数还会解码 + 为空格,可以扩展上述函数:

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

注意事项

  • 新的 decodeURIComponent 比旧的 unescape 更安全,推荐用于现代 Web 开发。
  • 旧的 unescape 不会解码 @*-_./ 等字符,而 decodeURIComponent 会。
  • 如果必须完全模拟旧行为,需要更复杂的正则表达式来匹配所有边缘情况。

标签: jsunescape
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现换肤

js实现换肤

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

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(func,…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…