Javascript UrlDecode函数代码_javascript技巧

有时候可能会有这么一个需求,我在后台使用:

复制代码 代码如下:

HttpUtility.UrlEncode(str, System.Text.Encoding.UTF8);

将Url进行编码,前台JS需要使用这段内容,这时候就需要解码了:

代码

复制代码 代码如下:

/**
* Url编码
**/
ShengUtils.encode = function(unzipStr){
var zipstr="";
var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
var tt= "";
for(var i=0;i<unzipStr.length;i++){
var chr = unzipStr.charAt(i);
var c=ShengUtils.StringToAscii(chr);
tt += chr+":"+c+"n";
if(parseInt("0x"+c) > 0x7f){
zipstr+=encodeURI(unzipStr.substr(i,1));
}else{
if(chr==" ")
zipstr+="+";
else if(strSpecial.indexOf(chr)!=-1)
zipstr+="%"+c.toString(16);
else
zipstr+=chr;
}
}
return zipstr;
}

/**
* Url解码
**/
ShengUtils.decode=function(zipStr){
var uzipStr="";
for(var i=0;i<zipStr.length;i++){
var chr = zipStr.charAt(i);
if(chr == "+"){
uzipStr+=" ";
}else if(chr=="%"){
var asc = zipStr.substring(i+1,i+3);
if(parseInt("0x"+asc)>0x7f){
uzipStr+=decodeURI("%"+asc.toString()+zipStr.substring(i+3,i+9).toString()); ;
i+=8;
}else{
uzipStr+=ShengUtils.AsciiToString(parseInt("0x"+asc));
i+=2;
}
}else{
uzipStr+= chr;
}
}
return uzipStr;
}

ShengUtils.StringToAscii=function(str){
return str.charCodeAt(0).toString(16);
}

ShengUtils.AsciiToString = function(asccode){
return String.fromCharCode(asccode);
}

时间: 2024-12-31 23:23:32

Javascript UrlDecode函数代码_javascript技巧的相关文章

javascript 快速排序函数代码_javascript技巧

核心代码: 复制代码 代码如下: function quickSort(arr){ //如果数组只有一个数,就直接返回: if(arr.length<1){ return arr; } //找到中间的那个数的索引值:如果是浮点数,就向下取整 var centerIndex = Math.floor(arr.length/2); //根据这个中间的数的索引值,找到这个数的值: var centerNum = arr.splice(centerIndex,1); //存放左边的数 var arrLe

两个比较有用的Javascript工具函数代码_javascript技巧

1.大家在实际工作中,会写各式各样的赋值语句. 比如最常用的obj.style.display = "none"; 如果这样的赋值语句一多,obj.style一排下来都要看晕了 下面我的base.js中的extend函数可以允许用json格式赋值属性甚至是函数句柄 复制代码 代码如下: /** * 扩展函数 * @param target 需要扩展的对象 * @param params 要往target里放的属性和方法 */ function extend(target, params

Javascript 阿拉伯数字转化中国大写数字的函数代码_javascript技巧

主要函数代码: 复制代码 代码如下: function Chinese(num) { if(!/^\d*(\.\d*)?$/.test(num)) { alert("你输入的不是数字,请重新输入!"); return false; } var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒&qu

javascript 四则运算精度修正函数代码_javascript技巧

函数代码如下: 复制代码 代码如下: /* * 四则运算精度修正函数 * m 数值1(number) * n 数值2(number) * op 操作符(string) */ function fixMath(m, n, op) { var a = (m+ " "); var b = (n+ " "); var x = 1; var y = 1; var c = 1; if(a.indexOf( ". ")> 0) { x = Math.po

Javascript变量函数浅析_javascript技巧

一.变量 在javascript变量中可以存放两种类型的值:原始值和引用值. 原始值存储在栈上的简单字段,也就是值直接存储在变量所标示的位置内. 引用值存储在堆内的对象,栈内变量保存的是指向堆内对象的指针值. 在javascript中有5种基本类型:Undefined,Null,Boolean,Number,String. 引用类型其实就是对象,类似其他语言中类实例的概念. 复制代码 代码如下: var b = true; // 存储在栈上 var num = 20; //存储在栈上 var b

日常收集整理的JavaScript常用函数方法_javascript技巧

函数就是包裹在花括号中的代码块,前面使用了关键词 function: function functionname() { 这里是要执行的代码 } 当调用该函数时,会执行函数内的代码. 可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用. 提示:JavaScript 对大小写敏感.关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数. 字符串长度截取 functiocutstr(strlen{ vatemp, i

JS 事件绑定函数代码_javascript技巧

主要解决了 浏览器兼容,现在可以兼容IE6 7 8 FF 谷歌(废话) IE浏览器里,this指向问题. 直接上代码吧! 复制代码 代码如下: var bind=function(object,type,fn){ if(object.attachEvent){//IE浏览器 object.attachEvent("on"+type,(function(){ return function(event){ window.event.cancelBubble=true;//停止时间冒泡 o

javascript实现的像java、c#之类的sleep暂停的函数代码_javascript技巧

下面就是我的实现的方法: 代码 复制代码 代码如下: <script type="text/javascript"> function test() { var s="javascript--暂停函数"; setTimeout( function(){ eval(sleep(test)); //执行return之后的代码,也就是"alert(s);" }, 2000 ); //两秒后执行 return; //运行到这就退出 alert

JavaScript版DateAdd和DateDiff函数代码_javascript技巧

DateAdd函数: 复制代码 代码如下: function DateAdd(interval,number,date){ switch(interval.toLowerCase()){ case "y": return new Date(date.setFullYear(date.getFullYear()+number)); case "m": return new Date(date.setMonth(date.getMonth()+number)); cas