当前位置:首页 > JavaScript

js实现urldecode

2026-02-02 04:25:30JavaScript

使用 decodeURIComponent 函数

JavaScript 提供了内置的 decodeURIComponent 函数,用于解码经过 encodeURIComponent 编码的 URL 字符串。该方法会解码 URL 中的特殊字符(如 %20 转换为空格)。

js实现urldecode

const encodedUrl = 'https%3A%2F%2Fexample.com%2Fpath%3Fquery%3Dvalue';
const decodedUrl = decodeURIComponent(encodedUrl);
console.log(decodedUrl); // 输出: "https://example.com/path?query=value"

处理异常情况

如果字符串包含无效的编码序列(如 % 后跟非十六进制字符),decodeURIComponent 会抛出异常。可以通过 try-catch 捕获错误:

js实现urldecode

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

替代方案:自定义解码函数

如果需要更灵活的处理(如忽略无效编码),可以通过正则表达式实现自定义解码:

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

const encodedStr = '%7E%40%23%24%25%5E%26*';
console.log(customDecodeURIComponent(encodedStr)); // 输出: "~@#$%^&*"

注意事项

  • decodeURIdecodeURIComponent 的区别:前者用于解码完整 URL(不解码 ?, =, & 等保留字符),后者解码所有编码字符。
  • 编码/解码需配对使用:若原始字符串用 encodeURIComponent 编码,必须用 decodeURIComponent 解码。

标签: jsurldecode
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…