当前位置:首页 > 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 捕获错误:

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 解码。

js实现urldecode

标签: jsurldecode
分享给朋友:

相关文章

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现复制到剪贴板

js实现复制到剪贴板

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

js防抖和节流实现

js防抖和节流实现

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

js实现换肤

js实现换肤

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

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现vr

js实现vr

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