用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
jQuery版Tab标签切换
Mar 16 Javascript
jQuery的初始化与对象构建之浅析
Apr 12 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
Nov 02 Javascript
JS基于面向对象实现的放烟花效果
May 07 Javascript
教你如何终止JQUERY的$.AJAX请求
Feb 23 Javascript
laypage分页控件使用实例详解
May 19 Javascript
Reactjs实现通用分页组件的实例代码
Jan 19 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 jQuery
Node.JS使用Sequelize操作MySQL的示例代码
Oct 09 Javascript
redux处理异步action解决方案
Mar 22 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
May 10 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
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
2015/06/14 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
vuex实现简易计数器
2016/10/27 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
tornado捕获和处理404错误的方法
2014/02/26 Python
Python自动扫雷实现方法
2015/07/25 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
python设置表格边框的具体方法
2020/07/17 Python
Python绘制组合图的示例
2020/09/18 Python
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
电气专业推荐信范文
2013/11/18 职场文书
大学生学习党课思想汇报
2014/01/03 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
开朗女孩的自我评价
2014/02/10 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
岳麓书院导游词
2015/02/03 职场文书
前台接待岗位职责
2015/02/03 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python