当前位置:首页 > JavaScript

js 实现urlencode

2026-03-14 17:16:37JavaScript

URL编码的基本概念

URL编码(也称为百分号编码)是将URL中的特殊字符转换为%后跟两位十六进制数的形式。例如,空格被编码为%20。

使用encodeURIComponent

JavaScript提供了encodeURIComponent函数,用于对URI组件进行编码。该函数会将除了字母、数字和- _ . ! ~ * ' ( )之外的字符都进行编码。

js 实现urlencode

const encoded = encodeURIComponent('https://example.com/?name=张三&age=20');
console.log(encoded);
// 输出:https%3A%2F%2Fexample.com%2F%3Fname%3D%E5%BC%A0%E4%B8%89%26age%3D20

使用encodeURI

encodeURI函数用于编码整个URI,但不会编码保留字符如:/?#[]@!$&'()*+,;=

js 实现urlencode

const encoded = encodeURI('https://example.com/?name=张三&age=20');
console.log(encoded);
// 输出:https://example.com/?name=%E5%BC%A0%E4%B8%89&age=20

手动实现URL编码

如果需要更细粒度的控制,可以手动实现URL编码函数。

function urlEncode(str) {
  return str.split('').map(char => {
    const code = char.charCodeAt(0);
    if (code >= 48 && code <= 57 ||  // 0-9
        code >= 65 && code <= 90 ||  // A-Z
        code >= 97 && code <= 122 || // a-z
        char === '-' || char === '_' || char === '.' || char === '~') {
      return char;
    }
    return '%' + code.toString(16).toUpperCase();
  }).join('');
}

console.log(urlEncode('https://example.com/?name=张三&age=20'));
// 输出:https%3A%2F%2Fexample%2Ecom%2F%3Fname%3D%E5%BC%A0%E4%B8%89%26age%3D20

解码URL

使用decodeURIComponent可以解码URL编码的字符串。

const decoded = decodeURIComponent('https%3A%2F%2Fexample.com%2F%3Fname%3D%E5%BC%A0%E4%B8%89%26age%3D20');
console.log(decoded);
// 输出:https://example.com/?name=张三&age=20

注意事项

  • encodeURIComponent适用于编码URI的组件(如查询参数),而encodeURI适用于编码整个URI。
  • 手动实现时需要注意保留字符的处理,确保与标准一致。
  • 解码时应使用对应的decodeURIComponentdecodeURI函数。

标签: jsurlencode
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现轮播

js实现轮播

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

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…