当前位置:首页 > 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实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…

js实现定位

js实现定位

使用Geolocation API获取当前位置 在JavaScript中,可以通过浏览器内置的Geolocation API获取用户的地理位置信息。该API需要用户授权才能访问位置数据。 if (n…