用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 相关文章推荐
JavaScript设置FieldSet展开与收缩
May 15 Javascript
JavaScript和JQuery实用代码片段(一)
Apr 07 Javascript
详解jQuery插件开发中的extend方法
Nov 19 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
Mar 06 Javascript
jQuery中的$.ajax()方法应用
May 06 Javascript
浅析JQuery中的html(),text(),val()区别
Sep 01 Javascript
jQuery浏览器CSS3特写兼容实例
Jan 19 Javascript
Javascript获取统一管理的提示语(message)
Feb 03 Javascript
jquery动态切换背景图片的简单实现方法
May 14 Javascript
jQuery中的100个技巧汇总
Dec 15 Javascript
javascript 中null和undefined区分和比较
Apr 19 Javascript
微信小程序学习之自定义滚动弹窗
Dec 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
PHP 和 XML: 使用expat函数(二)
2006/10/09 PHP
Zend Guard一些常见问题解答
2008/09/11 PHP
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
PHP使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
InnerHtml和InnerText的区别分析
2009/03/13 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
vue-cli3 配置开发与测试环境详解
2019/05/17 Javascript
swiper4实现移动端导航切换
2020/10/16 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
Python删除windows垃圾文件的方法
2015/07/14 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
2016高考冲刺决心书
2015/09/23 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题