用JavaScript实现UrlEncode和UrlDecode的脚本代码


Posted in Javascript onJuly 23, 2008
<script type="text/vbscript">     
Function str2asc(strstr)      
 str2asc = hex(asc(strstr))      
End Function      
Function asc2str(ascasc)      
 asc2str = chr(ascasc)      
End Function     
</script>

将vbscript函数转成javascript,方便非ie浏览器下使用

function str2asc(strstr){ 
return ("0"+strstr.charCodeAt(0).toString(16)).slice(-2); 
} 
function asc2str(ascasc){ 
return String.fromCharCode(ascasc); 
}
<script type="text/javascript">     
/*这里开始时UrlEncode和UrlDecode函数*/      
function UrlEncode(str){      
  var ret="";      
  var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%";      
  var tt= "";       for(var i=0;i<str.length;i++){      
   var chr = str.charAt(i);      
    var c=str2asc(chr);      
    tt += chr+":"+c+"n";      
    if(parseInt("0x"+c) > 0x7f){      
      ret+="%"+c.slice(0,2)+"%"+c.slice(-2);      
    }else{      
      if(chr==" ")      
        ret+="+";      
      else if(strSpecial.indexOf(chr)!=-1)      
        ret+="%"+c.toString(16);      
      else      
        ret+=chr;      
    }      
  }      
  return ret;      
}      
function UrlDecode(str){      
  var ret="";      
  for(var i=0;i<str.length;i++){      
   var chr = str.charAt(i);      
    if(chr == "+"){      
      ret+=" ";      
    }else if(chr=="%"){      
     var asc = str.substring(i+1,i+3);      
     if(parseInt("0x"+asc)>0x7f){      
      ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6)));      
      i+=5;      
     }else{      
      ret+=asc2str(parseInt("0x"+asc));      
      i+=2;      
     }      
    }else{      
      ret+= chr;      
    }      
  }      
  return ret;      
}      
alert(UrlDecode("%C2%D2%C2%EB"));     
</script>
Javascript 相关文章推荐
Autocomplete Textbox Example javascript实现自动完成成功
Aug 17 Javascript
10个实用的脚本代码工具
May 04 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
Feb 27 Javascript
JavaScript中setUTCFullYear()方法的使用简介
Jun 12 Javascript
3个可以改善用户体验的AngularJS指令介绍
Jun 18 Javascript
深入了解JavaScript中的Symbol的使用方法
Jul 28 Javascript
深入浅析JavaScript中prototype和proto的关系
Nov 15 Javascript
url中的特殊符号有什么含义(推荐)
Jun 17 Javascript
简单实现Bootstrap标签页
Aug 09 Javascript
web前端vue filter 过滤器
Jan 12 Javascript
JavaScript之解构赋值的理解
Jan 30 Javascript
npm的lock机制解析
Jun 20 Javascript
用js遍历 table的脚本
Jul 23 #Javascript
JavaScript 版本自动生成文章摘要
Jul 23 #Javascript
javascript 支持ie和firefox杰奇翻页函数
Jul 22 #Javascript
IE8 引入跨站数据获取功能说明
Jul 22 #Javascript
兼容多浏览器的字幕特效Marquee的通用js类
Jul 20 #Javascript
js停止输出代码
Jul 20 #Javascript
javascript 兼容FF的onmouseenter和onmouseleave的代码
Jul 19 #Javascript
You might like
ThinkPHP框架实现数据增删改
2017/05/07 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
详解JS 比较两个Json对象的值是否相等的实例
2013/11/20 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
简介JavaScript中Math.cos()余弦方法的使用
2015/06/15 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
python操作ssh实现服务器日志下载的方法
2015/06/03 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
Python的log日志功能及设置方法
2019/07/11 Python
利用Python产生加密表和解密表的实现方法
2019/10/15 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
感恩老师的演讲稿
2014/05/06 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
ktv好的活动方案
2014/08/17 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
优秀教研组申报材料
2014/12/26 职场文书
扬州个园导游词
2015/02/06 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python