当前位置:首页 > JavaScript

js urldecode实现

2026-04-06 10:38:11JavaScript

JavaScript URL 解码实现

在 JavaScript 中,URL 解码可以通过内置的 decodeURIComponent() 函数实现。该函数用于解码由 encodeURIComponent() 编码的 URI 组件。

使用 decodeURIComponent()

decodeURIComponent() 函数解码 URI 组件的特殊字符,例如 %20 会被解码为空格。

js urldecode实现

const encodedUrl = "Hello%20World%21";
const decodedUrl = decodeURIComponent(encodedUrl);
console.log(decodedUrl); // 输出: "Hello World!"

处理异常情况

如果传入的字符串包含无效的编码序列(如 % 后没有跟随两个十六进制数字),decodeURIComponent() 会抛出 URIError 异常。可以使用 try-catch 处理异常。

try {
    const encodedUrl = "Hello%20World%%";
    const decodedUrl = decodeURIComponent(encodedUrl);
    console.log(decodedUrl);
} catch (e) {
    console.error("解码失败:", e.message);
}

替代方法:decodeURI()

decodeURI() 也可以解码 URL,但它不会解码 encodeURIComponent() 编码的所有字符(如 #&/ 等)。通常推荐使用 decodeURIComponent()

js urldecode实现

const encodedUrl = "https%3A%2F%2Fexample.com%2Fpath";
const decodedUrl = decodeURI(encodedUrl);
console.log(decodedUrl); // 输出: "https://example.com/path"

手动实现 URL 解码

如果需要手动实现 URL 解码逻辑,可以通过正则表达式替换和 unescape() 函数完成。

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

const encodedUrl = "Hello%20World%21";
const decodedUrl = customUrlDecode(encodedUrl);
console.log(decodedUrl); // 输出: "Hello World!"

注意:unescape() 已废弃,不建议在生产环境中使用,此处仅作演示用途。

总结

  • 使用 decodeURIComponent() 解码完整的 URI 组件。
  • 使用 decodeURI() 解码完整的 URL(不处理组件)。
  • 手动实现时需注意编码规则和异常处理。

标签: jsurldecode
分享给朋友:

相关文章

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

js实现预览

js实现预览

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

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现自举

js实现自举

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

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…