当前位置:首页 > JavaScript

js urldecode 实现

2026-03-14 11:51:39JavaScript

URL 解码实现方法

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

基本用法

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

处理异常情况 如果传入的字符串包含无效的编码序列(如 % 后跟非十六进制数字),decodeURIComponent 会抛出 URIError 异常。可以通过 try-catch 处理:

try {
  const result = decodeURIComponent('%invalid');
} catch (e) {
  console.error('解码失败:', e.message);
}

替代方案 对于需要更宽松解码的场景(如处理部分编码的 URL),可以使用 decodeURI() 函数。该函数不会解码属于 URL 特殊字符的编码(如 :/?#[]@ 等):

const url = 'https://example.com/%7Euser';
console.log(decodeURI(url)); // 输出: "https://example.com/~user"

手动实现 如果需要自定义解码逻辑,可以通过正则表达式和 parseInt 手动实现:

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

注意事项

js urldecode 实现

  • decodeURIComponent 会解码所有百分号编码,包括可能影响 URL 结构的字符(如 /?
  • 处理用户输入时应始终使用 try-catch 包裹解码操作
  • 现代浏览器都支持这两个函数,无需 polyfill

标签: jsurldecode
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js实现点击效果

js实现点击效果

实现点击效果的JavaScript方法 使用addEventListener绑定点击事件 通过document.getElementById或document.querySelector获取DOM元素…

js实现递归

js实现递归

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