当前位置:首页 > JavaScript

js 实现urlencode

2026-02-01 18:08:50JavaScript

URL编码简介

URL编码(Percent-Encoding)是将特殊字符转换为%后跟两位十六进制数的格式。JavaScript提供原生方法实现这一功能。

使用encodeURIComponent

encodeURIComponent会对除字母、数字和-_.!~*'()之外的字符进行编码:

js 实现urlencode

const encoded = encodeURIComponent('测试&data=123');
console.log(encoded); // 输出 "%E6%B5%8B%E8%AF%95%26data%3D123"

使用encodeURI

encodeURI用于编码完整URL,不编码常见URL符号(如:/?#[]@):

js 实现urlencode

const url = 'https://example.com/测试?x=1';
console.log(encodeURI(url)); // 保持":/?="等符号不变

手动实现方法

需要更细粒度控制时可手动实现:

function customURLencode(str) {
  return str.split('').map(char => {
    const code = char.charCodeAt(0);
    return code > 128 ? '%' + code.toString(16).toUpperCase() : char;
  }).join('');
}

注意事项

  • 表单数据提交时应使用encodeURIComponent
  • 空格会被编码为%20(而非+
  • 现代浏览器已内置完整的编码实现,通常无需手动处理

解码方法

对应解码函数:

decodeURIComponent('%E6%B5%8B%E8%AF%95'); // 返回"测试"

标签: jsurlencode
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

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

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const ch…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的H…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…