当前位置:首页 > JavaScript

js urldecode 实现

2026-03-14 11:51:39JavaScript

URL 解码实现方法

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

基本用法

js urldecode 实现

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 特殊字符的编码(如 :/?#[]@ 等):

js urldecode 实现

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));
  });
}

注意事项

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

标签: jsurldecode
分享给朋友:

相关文章

js实现vue

js实现vue

Vue.js 的基本实现方法 在 JavaScript 中实现 Vue.js 的功能,可以通过直接引入 Vue 库或使用现代构建工具(如 Vite 或 Webpack)。以下是几种常见的实现方式:…

js实现轮播

js实现轮播

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

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现全选

js实现全选

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

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…