日常收集整理的JavaScript常用函数方法(4)

Date.prototype.formafunction(format){ va{ "M+this.getMonth()+//month "d+this.getDate()//day "h+this.getHours()//hour "m+this.getMinutes()//minute "s+this.getSeconds()//second "q+Math.floor((this.getMonth()+)/)//quarter "Sthis.getMilliseconds(//millisecond }; if(/(y+)/.test(format)format=format.replace(RegExp.$, (this.getFullYear()+"").substr(RegExp.$.length)); for(vaio){ if(neRegExp("("+")").test(format)) formaformat.replace(RegExp.$,RegExp.$.length==o[k:(""o[k]).substr((""o[k]).length)); } returformat; } alert(neDate().format("yyyy-MM-dhh:mm:ss"));

时间个性化输出功能

./* .、s显示为“刚刚” .、>mi&min显示与当前时间差“XX分钟前” .、>mi&day显示与当前时间差“今XX:XX” .、>da&year显示日期“XX月XXXX:XX” .、>year显示具体日期“XXXX年XX月XXXX:XX” .*/ .functiotimeFormat(time){ vadatneDate(time), curDatneDate(), yeadate.getFullYear(), montdate.getMonth(, dadate.getDate(), houdate.getHours(), minutdate.getMinutes(), curYeacurDate.getFullYear(), curHoucurDate.getHours(), timeStr; if(yeacurYear){ timeStyea+'年'mont+'月'da+''hou+':'minute; }else{ vapastTimcurDatdate, pastpastTime/; if(pastcurHour){ timeStmont+'月'da+''hou+':'minute; }elsif(past>){ timeSt'今hou+':'minut+'分'; }else{ vapastcurDate.getMinutes(minute; if(past){ timeStpast+'分钟前'; }else{ timeSt'刚刚'; } } } returtimeStr; }

解决offsetX兼容性问题

./针对火狐不支持offsetX/Y .functiogetOffset(e){ vatargee.target/当前触发的目标对象 eventCoord, pageCoord, offsetCoord; /计算当前触发元素到文档的距离 pageCoorgetPageCoord(target); /计算光标到文档的距离 eventCoor{ window.pageXOffsee.clientX, window.pageYOffsee.clientY }; /相减获取光标到第一个定位的父元素的坐标 offsetCoor{ eventCoord.pageCoord.X, eventCoord.pageCoord.Y }; returoffsetCoord; .} .functiogetPageCoord(element){ vacoor}; /计算从当前触发元素到根节点为止, /各offsetParen元素offsetLefoffsetTo值之和 whil(element){ coord.+element.offsetLeft; coord.+element.offsetTop; elemenelement.offsetParent; } returcoord; .} 常用的正则表达式 .//正整数 ./^[-]*[-][-]*$/; .//负整数 ./^-[-]*[-][-]*$/; .//正浮点数 ./^(([-]+\.[-]*[-][-]*)|([-]*[-][-]*\.[-]+)|([-]*[-][-]*))$/; .//负浮点数 ./^(-(([-]+\.[-]*[-][-]*)|([-]*[-][-]*\.[-]+)|([-]*[-][-]*)))$/; .//浮点数 ./^(-?\d+)(\.\d+)?$/; .//email地址 ./^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/; .//url地址 ./^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$/; .或:^http:\/\/[A-Za-z-]+\.[A-Za-z-]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])* .//年/月/日(年-月-日、年.月.日) ./^(|)\d\d[/.]([-]|[])[/.]([-]|[][-]|[])$/; .//匹配中文字符 ./[\ue-\ufa]/; .//匹配帐号是否合法(字母开头,允许-字节,允许字母数字下划线) ./^[a-zA-Z][a-zA-Z-_]{,}$/; .//匹配空白行的正则表达式 ./\n\s*\r/; .//匹配中国邮政编码 ./[-]\d{}(?!\d)/; .//匹配身份证 ./\d{}|\d{}/; .//匹配国内电话号码 ./(\d{}-|\d{}-)?(\d{}|\d{})?/; .//匹配IP地址 ./(([-]\d|[-]|[]?\d\d?)\.){}([-]\d|[-]|[]?\d\d?)/; .//匹配首尾空白字符的正则表达式 ./^\s*|\s*$/; .//匹配HTML标记的正则表达式 .(\S*?)[^>]*>.*?|.*/>; .//sq语句 .^(select|drop|delete|create|update|insert).*$ .//提取信息中的网络链接 .(h|H)(r|R)(e|E)(f|F**('|")?(\w|\\|\/|\.)+('|"*|>)? .//提取信息中的邮件地址 .\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* .//提取信息中的图片链接 .(s|S)(r|R)(c|C**('|")?(\w|\\|\/|\.)+('|"*|>)? .//提取信息中I地址 .(\d+)\.(\d+)\.(\d+)\.(\d+) .//取信息中的中国手机号码 .()**\d{} .//提取信息中的中国邮政编码 .[-]{}(\d+){} .//提取信息中的浮点数(即小数) .(-?\d*)\.?\d+ .//提取信息中的任何数字 .(-?\d*)(\.\d+)? .//电话区号 .^\d{,}$ .//腾Q号 .^[-]*[-][-]* .//帐号(字母开头,允-字节,允许字母数字下划线) .^[a-zA-Z][a-zA-Z-_]{,} .//中文、英文、数字及下划线 .^[\ue-\ufa_a-zA-Z-]+$ 返回顶部的通用方法 .functiobackTop(btnId{ vabtdocument.getElementById(btnId); vadocument.documentElement; vadocument.body; window.onscrolset; btn.style.displa"none"; btn.onclicfunction({ btn.style.displa"none"; window.onscrolnull; this.timesetInterval(function({ d.scrollTo-Math.ceil((d.scrollTob.scrollTop.); b.scrollTo-Math.ceil((d.scrollTob.scrollTop.); i((d.scrollTob.scrollTop=clearInterval(btn.timerwindow.onscrolset); }); }; functioset({ btn.style.displa(d.scrollTob.scrollTo'block'"none" } .}; .backTop('goTop'); 获得URL中GET参数值 ./用法:如果地址test.htm?t=&t=&t=那么能取得:GET["t"]GET["t"]GET["t"] .functioget_get(){ querystwindow.location.href.split("?") if(querystr[]){ GETquerystr[].split("&"); GE[]; for(i=;i<GETs.length;i++){ tmp_arGETs.split("=") key=tmp_arr[] GET[keytmp_arr[] } } returquerystr[]; .} 打开一个窗体通用方法 .functioopenWindow(url,windowName,width,height){ vaparseInt(screen.widt.(widt.); vaparseInt(screen.heigh.(heigh.); vaisMSIE(navigator.appNam="MicrosofInterneExplorer"); i(isMSIE{ va"resizable=,location=no,scrollbars=no,width="; p+width; p+",height="; p+height; p+",left="; p+x; p+",top="; p+y; retvawindow.open(urlwindowNamep); els{ vawiwindow.open(url"ZyiisPopup""top=",left=",scrollbars=scrollbar",dialog=yes,modal=yes,width=widt",height=heigh",resizable=no); eval("trwin.resizeTo(widthheight)catch(e}"); win.focus(); } .} 提取页面代码中所有网址 vaadocument.documentElement.outerHTML.match(/(url\(|src=|href=)[\"\']*([^\"\'\(\)\<\>\[\]+)[\"\'\)]*|(http:\/\/[\w\-\.]+[^\"\'\(\)\<\>\[\]+)/ig).join("\r\n").replace(/^(src=|href=|url\()[\"\']*|[\"\'\>\]*$/igm,""); alert(aa); 清除相同的数组 String.prototype.unique=function(){ vax=this.split(/[\r\n]+/); vay=''; for(vai=;i<x.length;i++){ if(!neRegExp("^"+x.replace(/([^\w])/ig,"\\$")+"$","igm").test(y)){ y+=x+"\r\n" } } retury }; 按字母排序,对每行进行数组排序 functioSetSort(){ vatext=K.value.split(/[\r\n]/).sort().join("\r\n");//顺序 vatest=K.value.split(/[\r\n]/).sort().reverse().join("\r\n");//反序 K.value=K.value!=text?text:test; } 字符串反序 functioIsReverse(text){ returtext.split('').reverse().join(''); } 清除html代码中的脚本 functioclear_script(){ K.value=K.value.replace(/<script.*?>[\s\S]*?<\/script>|\s+on[a-zA-Z]{,}\s?=\s?"[\s\S]*?"|\s+on[a-zA-Z]{,}\s?=\s?'[\s\S]*?'|\s+on[a-zA-Z]{,}\s?=[>]+/ig,""); } 动态执行JavaScript脚本 functiojavascript(){ try{ eval(K.value); }catch(e){ alert(e.message); } } 动态执行VBScript脚本 functiovbscript(){ try{ vascript=document.getElementById("K").value; if(script.trim()=="")return; window.execScript('OErroResumNex\n'+script+'\IErr.Number<>The\MsgBo"请输入正确的VBScript脚本!",,"脚本错误!\EnIf',"vbscript") }catch(e){ alert(e.message); } } 金额大写转换函数 functiotransform(tranvalue{ tr{ va; vadneArray("""万""亿")//大单位 vadneArray("拾""佰""仟")//小单位 vadneArray("零""壹""贰""叁""肆""伍""陆""柒""捌""玖")//整数部分用 //以下是小写转换成大写显示在合计大写的文本框 //分离整数与小数 vasourcsplits(tranvalue); vanusource[]; vadisource[]; //转换整数部分 va//计小单位 va//计大单位 vasu; vast""; valesource[].length//整数的长度 fo(<leni++{ vasource[].charAt(lei)//取得某个位数上的数字 vab; i(l>{ bsource[].charAt(le)//取得某个位数前一位上的数字 } susuNumber(n); i(su!{ stdw[Number(n)].concat(str)//取得该数字对应的大写数字,并插入到str字符串的前面 i(=''su; } i(l>//在数字范围内 i(!//加小单位 i(b!{ stdw[k].concat(str); } k++; els//不加小单位,加大单位 ; vatemstr.charAt(); i(tem="万|tem="亿"//若大单位前没有数字则舍去大单位 ststr.substr(str.lengt); stdw[k].concat(str); su; } } i(=)//小单位到千则大单位进一 k++; } } //转换小数部分 vastrdi""; i(di!""{ vadig.charAt(); i(!{ strdi+dw[Number(n)"角"//加数字 } vadig.charAt(); i(!{ strdi+dw[Number(n)"分"//加数字 } } st+"元strdig; catch(e{ retur"元"; } returstr; } //拆分整数与小数 functiosplits(tranvalue{ vavaluneArray(''''); temtranvalue.split("."); fo(vatemp.lengthi++{ valutemp; } returvalue; } resize的操作 (function(){ vaffunction(){ vadocument.documentElemendocument.documentElement.clientWidtdocument.body.clientWidth , ,Element.extend(document.body) ,classnamb.className; if(r){ //当窗体的宽度小于的时候执行相应的操作 }else{ //当窗体的宽度大于的时候执行相应的操作 } } if(window.addEventListener){ window.addEventListener('resize'function()fn()}); }elsif(window.attachEvent){ window.attachEvent('onresize'function()fn()}); } fn(); })(); 实现base64解码 functiobase_decode(data){ vab"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/="; vaooohhhhbits,a,de"",tmp_ar[]; i(!datareturdata} dat+''; d{ hb.indexOf(data.charAt(i++)); hb.indexOf(data.charAt(i++)); hb.indexOf(data.charAt(i++)); hb.indexOf(data.charAt(i++)); bith<h<h<h; obit>xff; obit>xff; obitxff; i(h={ tmp_arr[ac++String.fromCharCode(o); elsi(h={ tmp_arr[ac++String.fromCharCode(oo); els{ tmp_arr[ac++String.fromCharCode(ooo); } whil(data.length); detmp_arr.join(''); deutf_decode(dec); returdec; } 实现utf8解码 .functioutf_decode(str_data){ vatmp_ar[],,a,,,;str_dat+''; whil(str_data.length{ str_data.charCodeAt(i); i({ tmp_arr[ac++String.fromCharCode(c); i++; elsi&{ str_data.charCodeAt(); tmp_arr[ac++String.fromCharCode(((<()); +; els{ str_data.charCodeAt(); str_data.charCodeAt(); tmp_arr[ac++String.fromCharCode(((<((<()); +; } } returtmp_arr.join(''); } 获取窗体可见范围的宽与高 .functiogetViewSize(){ vade=document.documentElement; vadb=document.body; vaviewW=de.clientWidth==db.clientWidtde.clientWidth; vaviewH=de.clientHeight==db.clientHeighde.clientHeight; returArray(view,viewH); } 断鼠标是否移出事件 functioisMouseOut(ehandler{ i(e.typ!='mouseout'{ returfalse; } varelte.relatedTargee.relatedTargee.typ=='mouseoute.toElemene.fromElement; whil(relt&relt!=handler{ reltreltg.parentNode; } retur(relt!=handler); } 半角转换为全角函数 .functioToDBC(str){ varesul''; for(vai=str.lengthi++){ codstr.charCodeAt(i); if(cod>&cod<){ resul+String.fromCharCode(str.charCodeAt(i); }elsi(cod=){ resul+String.fromCharCode(str.charCodeAt(i); }else{ resul+str.charAt(i); } } returresult; } 全角转换为半角函数 .functioToCDB(str){ varesul''; for(vai=str.lengthi++){ codstr.charCodeAt(i); if(cod&cod<){ resul+String.fromCharCode(str.charCodeAt(i); }elsi(cod=){ resul+String.fromCharCode(str.charCodeAt(); }else{ resul+str.charAt(i); } } returresult; }

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgzypx.html