用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 相关文章推荐
从sohu弄下来的flash中展示图片的代码
Apr 27 Javascript
获取dom元素那些讨厌的位置封装代码
Jun 23 Javascript
js判断变量是否未定义的代码
Mar 28 Javascript
JavaScript回调(callback)函数概念自我理解及示例
Jul 04 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
Nov 18 Javascript
100个不能错过的实用JS自定义函数
Mar 05 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
Sep 05 Javascript
利用hasOwnProperty给数组去重的面试题分享
Nov 05 Javascript
微信小程序自定义带价格显示日历效果
Dec 29 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
Jun 04 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
Sep 19 Javascript
js实现简单放大镜效果
Mar 07 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
微信公众平台实现获取用户OpenID的方法
2015/04/15 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
JS实现让访问者自助选择网页文字颜色的方法
2015/02/24 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
BootStrap Fileinput上传插件使用实例代码
2017/07/28 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
js实现继承的方法及优缺点总结
2019/05/08 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
python2和python3的输入和输出区别介绍
2018/11/20 Python
pytorch实现线性拟合方式
2020/01/15 Python
Python tkinter和exe打包的方法
2020/02/05 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
用python进行视频剪辑
2020/11/02 Python
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
印度在线杂货店:bigbasket
2018/08/23 全球购物
大三自我鉴定范文
2013/10/05 职场文书
电子商务专业个人的自我评价分享
2013/10/29 职场文书
生产管理的三大手法
2013/11/11 职场文书
销售经理工作职责范文
2013/12/03 职场文书
2014年教师节寄语
2014/04/03 职场文书
大学生应聘求职信
2014/05/26 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
安全教育的主题班会
2015/08/13 职场文书
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
各国货币符号大全
2022/02/17 杂记