//cookiefunction setCookie(name, value, iDay){ if(iDay!==false) { var oDate=new Date(); oDate.setDate(oDate.getDate()+iDay); document.cookie=name+'='+value+';expires='+oDate+';path=/'; } else { document.cookie=name+'='+value; }}function getCookie(name){ var arr=document.cookie.split('; '); var i=0; for(i=0;i<arr.length;i++) { var arr2=arr[i].split('='); if(arr2[0]==name) { return arr2[1]; } } return '';}function removeCookie(name){ setCookie(name, 'a', -1);}//事件function myAddEvent(obj, ev, fn){ obj.attachEvent?obj.attachEvent('on'+ev, fn):obj.addEventListener(ev, fn, false);}function myDelEvent(obj, ev, fn){ obj.detachEvent?obj.detachEvent('on'+ev, fn):obj.removeEventListener(ev, fn, false);}function getByClass(oParent, sClass){ var aEle=oParent.getElementsByTagName('*'); var re=new RegExp('//b'+sClass+'//b', 'i'); var aResult=[]; for(var i=0;i<aEle.length;i++) { if(re.test(aEle[i].className)) { aResult.push(aEle[i]); } } return aResult;}function bindEvent(obj, ev, fn){ obj.addEventListener?obj.addEventListener(ev, fn, false):obj.attachEvent('on'+ev, fn);}function unbindEvent(obj, ev, fn){ obj.removeEventListener?obj.removeEventListener(ev, fn, false):obj.detachEvent('on'+ev, fn);}//生成随机数function rnd(n, m){ return Math.random()*(m-n)+n;}function time2date(t){ function d(n){return n<10?'0'+n:''+n;} var oDate=new Date(t*1000); return oDate.getFullYear()+'-'+d(oDate.getMonth()+1)+'-'+d(oDate.getDate())+' '+d(oDate.getHours())+':'+d(oDate.getMinutes())+':'+d(oDate.getSeconds());}function time2day(t){ function d(n){return n<10?'0'+n:''+n;} var oDate=new Date(t*1000); return oDate.getFullYear()+'-'+d(oDate.getMonth()+1)+'-'+d(oDate.getDate());}//拖拽function drag(objEv, objMove, fnMoveCallBack){ var disX=0,disY=0; objEv.onmousedown=function (ev) { var oEvent=ev||event; disX=(document.documentElement.scrollLeft||document.body.scrollLeft)+oEvent.clientX-objMove.offsetLeft; disY=(document.documentElement.scrollTop||document.body.scrollTop)+oEvent.clientY-objMove.offsetTop; if(objEv.setCapture) { objEv.onmousemove=fnMove; objEv.onmouseup=fnUp; objEv.setCapture(); } else { document.onmousemove=fnMove; document.onmouseup=fnUp; return false; } }; function fnMove(ev) { var oEvent=ev||event; var l=(document.documentElement.scrollLeft||document.body.scrollLeft)+oEvent.clientX-disX; var t=(document.documentElement.scrollTop||document.body.scrollTop)+oEvent.clientY-disY; fnMoveCallBack(l,t); } function fnUp() { this.onmousemove=null; this.onmouseup=null; if(this.releaseCapture)this.releaseCapture(); }}function mouseScroll(obj, fnCallBack){ bindEvent(obj, 'mousewheel', fnScroll); bindEvent(obj, 'DOMMouseScroll', fnScroll); function fnScroll(ev) { var oEvent=ev||event; var bDown; if(oEvent.wheelDelta) { bDown=oEvent.wheelDelta<0; } else { bDown=oEvent.detail>0; } fnCallBack(bDown); if(oEvent.PReventDefault)oEvent.preventDefault(); return false; }}//摆动运动zns.site.fx.swing=function (obj, cur, target, fnDo, fnEnd, acc){ if(zns.site.fx.browser_test.IE6) { fnDo&&fnDo.call(obj, target); fnEnd&&fnEnd.call(obj, target); return; } if(!acc)acc=0.1; var now={}; var x=0; //0-100 if(!obj.__swing_v)obj.__swing_v=0; if(!obj.__last_timer)obj.__last_timer=0; var t=new Date().getTime(); if(t-obj.__last_timer>20) { fnMove(); obj.__last_timer=t; } clearInterval(obj.timer); obj.timer=setInterval(fnMove, 20); function fnMove(){ if(x<50) { obj.__swing_v+=acc; } else { obj.__swing_v-=acc; } //if(Math.abs(obj.__flex_v)>MAX_SPEED)obj.__flex_v=obj.__flex_v>0?MAX_SPEED:-MAX_SPEED; x+=obj.__swing_v; //alert(x+','+obj.__swing_v); for(var i in cur) { now[i]=(target[i]-cur[i])*x/100+cur[i]; } if(fnDo)fnDo.call(obj, now); if(/*Math.abs(obj.__swing_v)<1 || */Math.abs(100-x)<1) { clearInterval(obj.timer); if(fnEnd)fnEnd.call(obj, target); obj.__swing_v=0; } }};//弹性运动zns.site.fx.flex=function (obj, cur, target, fnDo, fnEnd, fs, ms){ if(zns.site.fx.browser_test.IE6) { fnDo&&fnDo.call(obj, target); fnEnd&&fnEnd.call(obj, target); return; } var MAX_SPEED=16; if(!fs)fs=6; if(!ms)ms=0.75; var now={}; var x=0; //0-100 if(!obj.__flex_v)obj.__flex_v=0; if(!obj.__last_timer)obj.__last_timer=0; var t=new Date().getTime(); if(t-obj.__last_timer>20) { fnMove(); obj.__last_timer=t; } clearInterval(obj.timer); obj.timer=setInterval(fnMove, 20); function fnMove(){ obj.__flex_v+=(100-x)/fs; obj.__flex_v*=ms; if(Math.abs(obj.__flex_v)>MAX_SPEED)obj.__flex_v=obj.__flex_v>0?MAX_SPEED:-MAX_SPEED; x+=obj.__flex_v; for(var i in cur) { now[i]=(target[i]-cur[i])*x/100+cur[i]; } if(fnDo)fnDo.call(obj, now); if(Math.abs(obj.__flex_v)<1 && Math.abs(100-x)<1) { clearInterval(obj.timer); if(fnEnd)fnEnd.call(obj, target); obj.__flex_v=0; } }};
代码
1 /** 2 * 转全角字符 3 */ 4 function toDBC(str){ 5 var result = ""; 6 var len = str.length; 7 for(var i=0;i<len;i++) 8 { 9 var cCode = str.charCodeAt(i);10 //全角与半角相差(除空格外):65248(十进制)11 cCode = (cCode>=0x0021 && cCode<=0x007E)?(cCode + 65248) : cCode;12 //处理空格13 cCode = (cCode==0x0020)?0x03000:cCode;14 result += String.fromCharCode(cCode);15 }16 return result;17 }18 19 /**20 * 转半角字符21 */22 function toSBC(str){23 var result = "";24 var len = str.length;25 for(var i=0;i<len;i++)26 {27 var cCode = str.charCodeAt(i);28 //全角与半角相差(除空格外):65248(十进制)29 cCode = (cCode>=0xFF01 && cCode<=0xFF5E)?(cCode - 65248) : cCode;30 //处理空格31 cCode = (cCode==0x03000)?0x0020:cCode;32 result += String.fromCharCode(cCode);33 }34 return result;35 }全角与半角字符的转换
知识点
通过半角字符与全角字符的比较(ASCII字符),我们可以发现,拥有全角与半角之分的ASCII字符范围:0x20~0x7E。
比如:
符号 | 半角 | 全角 | 相差 |
# | 0x0023 | 0xFF03 | 0xFEE0 |
? | 0x003F | 0xFF1F | 0xFEE0 |
空格 | 0x0020 | 0x03000 | 0x2FE0 |
除了空格外,其他的字符中,全角与半角均相差:0xFFE0
因此,在全角与半角的字符转换中,需要对空格特殊处理。
例如:
全角 =半角 + 0xFEE0
半角 =全角 - 0xFFE0
相关文章:
请问半角全角有什么区别
维基百科:全角和半角
Java 半角全角互相转换
代码段摘抄自:http://www.zhinengshe.com/js/main.js
推荐一个不错的Javascript函数库网站:http://www.jslab.org.cn/
新闻热点
疑难解答