完美的js URLEncode函数

当需要通过查询字符串传值给服务器时需要对get参数进行encode。

  1. escape()函数,不会encode @*/+ (不推荐使用)
  2. encodeURI()函数,不会encode ~!@#$&*()=:/,;?+' (不推荐使用)
  3. encodeURIComponent()函数,不会encode ~!*() 这个函数是最常用的

我们需要对encodeURIComponent函数,最一点修改:

function urlencode (str) {  str = (str + '').toString();   return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').  replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
}

PS:例如微信H5支付中要求对回调页面的参数redirect_url参数进行 URLEncode。
前端路由采用了hash模式,由于我采用的是encodeURI,导致 # 未 encode而引起#后面内容的丢失,采用encodeURIComponent就好了

js URLEncode函数相关推荐

  1. js urlencode 20 php,js实现php函数urlencode

    本文介绍了php函数urlencode的js实现方法并比较js和php各编码函数的区别. 通常form表单的enctype类型为 application/x-www-form-urlencoded, ...

  2. js自定义函数及参数问题

    js自定义函数的过程中,往往我们希望指定一些参数的默认值 很容易的会写出如下的js 方法 function test(a,b,c=1,d='id'){ return 1; } 但是定义完之后,浏览器会 ...

  3. 【转】JS回调函数--简单易懂有实例

    JS回调函数--简单易懂有实例 初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数. 我们先来看看回调的英文定义:A callback is a function that is ...

  4. url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

    转载地址:http://www.haorooms.com/post/js_escape_encodeURIComponent 引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器ur ...

  5. url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介【转】

    引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encode ...

  6. prototype.js常用函数及其用法

    prototype.js常用函数: 函数名  解释  举例  Element.toggle  交替隐藏或显示  Element.toggle(''div1'',''div2'')  Element.h ...

  7. 调用c++_WebAssembly: 在C代码中调用JS的函数

    0. 前提知识点 导出C中的函数给JS调用:主要是EMSCRIPTEN_KEEPALIVE这个Emscripten环境特有的宏. #include <stdio.h>#ifndef EM_ ...

  8. js中函数的参数为函数的情况即回调函数

    js中函数的参数可以是数组对象也可以是函数,当参数为函数时我们叫做回调函数 //定义回调函数 function B() { console.log("函数B") setTimeou ...

  9. JS回调函数(callback)

    在使用Jquery的时候,用到Callback(),回调函数的概念.而且很多. 比如: $.ajax({url:"test.json",type: "GET", ...

最新文章

  1. 四、MySql七个查询命令中哪些命令执行效率过慢
  2. CSS打造很棒的黑色背景下的导航菜单
  3. 图像梯度增强_使用梯度增强机在R中进行分类
  4. Zabbix3.0 安装Graphtree
  5. “睡服”面试官系列第四篇之字符串的扩展(建议收藏学习)
  6. [CF718C] Sasha and Array
  7. 腾讯接入华为鸿蒙!QQ音乐与Harmony OS达成合作 推出听歌识曲万能卡片
  8. 第十六章——处理锁、阻塞和死锁(3)——使用SQLServer Profiler侦测死锁
  9. php header readfile,采用header定义为文件然后readfile下载
  10. Excel VBa 连接Oracle数据库
  11. Python数据分析入门教程(五):数据运算
  12. 白嫖 Moss 斯坦福文件查重
  13. BFM-总线功能模型
  14. 你同学都身价上亿了,你还在纠结早晨几点能起床
  15. 勤于奋国外LEAD联盟赚钱注意事项
  16. springboot静态资源的配置
  17. 基于Reworld、Roblox的团队协作
  18. 大规模网络攻击致美国网站集体宕机 “维基解密”吁支持者停止复仇
  19. trunk vlan pvid 学习实验整理 1
  20. Flutter glUtilsParamSize: unknow param 0x00008741 错误

热门文章

  1. java合并单元格边框不完整,java poi 合并单元格后边框问题
  2. 5. SAP S/4 运维基础知识(Basic Knowledge) - SAP S/4 Basis Learning
  3. 自动识别查找特定的串口号 比如设备管理器中Modem属性里的串口 按这个方法可以获取设备管理器任意信息。C++
  4. 关于flex布局中,父元素高度auto,由一子元素撑开,另一子元素自适应高度问题
  5. border-image
  6. SVN拉取、提交文件
  7. day23面向对象第一篇
  8. 基于WPS开放平台 WPS文件转PDF开发指南
  9. android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切换、爆炸菜单、风扇叶片效果等源码...
  10. 【更新】CVE-2020-0796:微软紧急发布SMBv3协议“蠕虫级”漏洞补丁通告