当前位置:首页 > JavaScript

js实现urlencode

2026-03-14 01:40:05JavaScript

URL编码简介

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

js实现urlencode

使用encodeURIComponent

最常用的方法是使用encodeURIComponent()函数,它会对所有非字母数字字符进行编码(包括! ' ( )等):

js实现urlencode

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

使用encodeURI

当需要编码完整URL时(保留协议、域名等部分),使用encodeURI()。它不会编码:/?#[]@等URL保留字符:

const url = 'https://example.com/测试?name=张三';
console.log(encodeURI(url)); // 输出 "https://example.com/%E6%B5%8B%E8%AF%95?name=%E5%BC%A0%E4%B8%89"

手动实现编码

如需自定义编码规则,可通过以下函数实现:

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

注意事项

  • encodeURIComponent会编码更多字符(包括? & =等),适合编码URL参数值
  • 空格在URL编码中可以是%20+,需根据服务器要求处理
  • 现代浏览器已自动处理URL编码,手动编码主要用于特殊场景或Node.js环境

标签: jsurlencode
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现轮播图

js实现轮播图

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

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…