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


Posted in Javascript onDecember 10, 2015

函数就是包裹在花括号中的代码块,前面使用了关键词 function:

function functionname()
{
这里是要执行的代码
}

当调用该函数时,会执行函数内的代码。

可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。

提示:JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。

字符串长度截取

functiocutstr(strlen{
 vatemp,
 icoun,
 patr/[^\x-\xff]/,
 strr"";
 fo(vastr.lengthi++{
 i(icounle{
 temstr.substr(i);
 i(patrn.exec(temp=null{
 icounicoun
 els{
 icounicoun
 }
 strr+temp
 els{
 break;
 }
 }
 returstrr"..."
 }

替换全部

String.prototype.replaceAlfunction(ss{
 returthis.replace(neRegExp(s"gm")s)
 }

清除空格

String.prototype.trifunction({
 vareExtraSpac/^\s*(.*?)\s+$/;
 returthis.replace(reExtraSpace"$")
 }

清除左空格/右空格

functioltrim(s)returs.replace/^(\s*| *)/"")}
 functiortrim(s)returs.replace/(\s*| *)$/"")}

判断是否以某个字符串开头

String.prototype.startWitfunctio(s{
 returthis.indexOf(s=
 }

判断是否以某个字符串结束

String.prototype.endWitfunctio(s{
 vathis.lengts.length;
 retur(>&this.lastIndexOf(s=d)
 }

转义html标签

functioHtmlEncode(text{
 returtext.replace(/&/g'&').replace(/\"/g'"').replace(/</g'<').replace(/>/g'>')
 }

时间日期格式转换

Date.prototype.Formafunction(formatStr{
 vastformatStr;
 vaWee['日''一''二''三''四''五''六'];
 ststr.replace(/yyyy|YYYY/this.getFullYear());
 ststr.replace(/yy|YY/(this.getYear((this.getYear().toString('(this.getYear());
 ststr.replace(/MM/(this.getMonth((this.getMonth().toString('(this.getMonth());
 ststr.replace(/M/g(this.getMonth());
 ststr.replace(/w|W/gWeek[this.getDay()]);
 ststr.replace(/dd|DD/this.getDate(this.getDate().toString('this.getDate());
 ststr.replace(/d|D/gthis.getDate());
 ststr.replace(/hh|HH/this.getHours(this.getHours().toString('this.getHours());
 ststr.replace(/h|H/gthis.getHours());
 ststr.replace(/mm/this.getMinutes(this.getMinutes().toString('this.getMinutes());
 ststr.replace(/m/gthis.getMinutes());
 ststr.replace(/ss|SS/this.getSeconds(this.getSeconds().toString('this.getSeconds());
 ststr.replace(/s|S/gthis.getSeconds());
 returstr
 }

判断是否为数字类型

functioisDigit(value{
 vapatr/^[-]*$/;
 i(patrn.exec(value=nul|valu=""{
 returfalse
 els{
 returtrue
 }
 }

设置cookie值

functiosetCookie(namevalueHours{
 vaneDate();
 vaoffse;
 vautd.getTime((d.getTimezoneOffset();
 vanut(offset);
 vaexneDate(nd);
 exp.setTime(exp.getTime(Hour);
 document.cookinam"=escape(value";path=/;expires=exp.toGMTString(";domain=doc.com;"
 }

获取cookie值

functiogetCookie(name{
 vaardocument.cookie.match(neRegExp("(^)nam"=([^;]*)(;|$)"));
 i(ar!nullreturunescape(arr[]);
 returnull
 }

加入收藏夹

functioAddFavorite(sURLsTitle{
 tr{
 window.external.addFavorite(sURLsTitle)
 catch(e{
 tr{
 window.sidebar.addPanel(sTitlesURL"")
 catch(e{
 alert("加入收藏失败,请使用Ctrl+D进行添加")
 }
 }
 }

设为首页

functiosetHomepage({
 i(document.all{
 document.body.style.behavio'url(#default#homepage)';
 document.body.setHomePage('http://wcboy.com')
 elsi(window.sidebar{
 i(window.netscape{
 tr{
 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
 catch(e{
 alert("该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输about:config,然后将signed.applets.codebase_principal_suppor值该为true")
 }
 }
 vaprefComponents.classes['@mozilla.org/preferences-service;'].getService(Components.interfaces.nsIPrefBranch);
 prefs.setCharPref('browser.startup.homepage''http://wcboy.com')
 }
 }

加载样式文件

functioLoadStyle(url{
 tr{
 document.createStyleSheet(url)
 catch(e{
 vacssLindocument.createElement('link');
 cssLink.re'stylesheet';
 cssLink.typ'text/css';
 cssLink.hreurl;
 vaheadocument.getElementsByTagName('head')[];
 head.appendChild(cssLink)
 }
 }

返回脚本内容

functioevalscript(s{
 if(s.indexOf('<script'=-returs;
 va/<script[^\>]*?>([^\x]*?)<\/script>/ig;
 vaar[];
 while(arp.exec(s){
 vap/<script[^\>]*?src=\"([^\>]*?)\"[^\>]*?(reload=\"\")?(?:charset=\"([\w\-]+?)\")?><\/script>/i;
 vaarr[];
 arrp.exec(arr[]);
 if(arr{
 appendscript(arr[]''arr[]arr[]);
 els{
 p/<script(.*?)>([^\x]+?)<\/script>/i;
 arrp.exec(arr[]);
 appendscript(''arr[]arr[].indexOf('reload='!-);
 }
 }
 returs;
 }

清除脚本内容

functiostripscript(s{
 returs.replace(/<script.*?>.*?<\/script>/ig'');
 }

动态加载脚本文件

functioappendscript(srctextreloadcharset{
 vaihash(srtext);
 if(!reloa&in_array(idevalscripts)return;
 if(reloa&$(id){
 $(id).parentNode.removeChild($(id));
 }
 evalscripts.push(id);
 vascriptNoddocument.createElement("script");
 scriptNode.typ"text/javascript";
 scriptNode.iid;
 scriptNode.charsecharsecharse(BROWSER.firefodocument.characterSedocument.charset);
 tr{
 if(src{
 scriptNode.srsrc;
 scriptNode.onloadDonfalse;
 scriptNode.onloafunctio({
 scriptNode.onloadDontrue;
 JSLOADED[src;
 };
 scriptNode.onreadystatechangfunctio({
 if((scriptNode.readyStat='loaded|scriptNode.readyStat='complete'&!scriptNode.onloadDone{
 scriptNode.onloadDontrue;
 JSLOADED[src;
 }
 };
 elsif(text){
 scriptNode.textext;
 }
 document.getElementsByTagName('head')[].appendChild(scriptNode);
 catch(e{}
 }

返回按ID检索的元素对象

functio$(id{
 retur!inuldocument.getElementById(id);
 }

跨浏览器绑定事件

functioaddEventSamp(obj,evt,fn){
 if(!oTarget){return;}
 i(obj.addEventListener{
 obj.addEventListener(evtfnfalse);
 }elsif(obj.attachEvent){
 obj.attachEvent('on'+evt,fn);
 }else{
 oTarget["onsEvtTypefn;
 }
 }

跨浏览器删除事件

functiodelEvt(obj,evt,fn){
 if(!obj){return;}
 if(obj.addEventListener){
 obj.addEventListener(evt,fn,false);
 }elsif(oTarget.attachEvent){
 obj.attachEvent("onevt,fn);
 }else{
 obj["onevtfn;
 }
 }

为元素添加on方法

Element.prototype.oElement.prototype.addEventListener;
 NodeList.prototype.ofunctio(eventfn{、
 []['forEach'].call(thisfunctio(el{
 el.on(eventfn);
 });
 returthis;
 };

为元素添加trigger方法

Element.prototype.triggefunctio(typedata{
 vaevendocument.createEvent('HTMLEvents');
 event.initEvent(typetruetrue);
 event.datdat|{};
 event.eventNamtype;
 event.targethis;
 this.dispatchEvent(event);
 returthis;
 };
 NodeList.prototype.triggefunctio(event{
 []['forEach'].call(thisfunctio(el{
 el['trigger'](event);
 });
 returthis;
 };

检验URL链接是否有效

functiogetUrlState(URL){
 vaxmlhttneActiveXObject("microsoft.xmlhttp");
 xmlhttp.Open("GET",URLfalse);
 try{
 xmlhttp.Send();
 }catch(e){
 }finally{
 varesulxmlhttp.responseText;
 if(result){
 if(xmlhttp.Status==){
 return(true);
 }else{
 return(false);
 }
 }else{
 return(false);
 }
 }
 }

格式化CSS样式代码

.functioformatCss(s){//格式化代码
 s.replace(/\s*([\{\}\:\;\,])\s*/g"$");
 s.replace(/;\s*;/g";")//清除连续分号
 s.replace(/\,[\s\.\#\d]*{/g"{");
 s.replace(/([^\s])\{([^\s])/g"${\n\t$");
 s.replace(/([^\s])\}([^\n]*)/g"$\n}\n$");
 s.replace(/([^\s]);([^\s\}])/g"$;\n\t$");
 returs;
 }

压缩CSS样式代码

functiocompressCs(s{//压缩代码
 s.replace(/\/\*(.|\n)*?\*\//g"")//删除注释
 s.replace(/\s*([\{\}\:\;\,])\s*/g"$");
 s.replace(/\,[\s\.\#\d]*\{/g"{")//容错处理
 s.replace(/;\s*;/g";")//清除连续分号
 s.match(/^\s*(\S+(\s+\S+)*)\s*$/)//去掉首尾空白
 retur(=null"s[];
 }

获取当前路径

vacurrentPageUr"";
 i(typeothis.hre=="undefined"{
 currentPageUrdocument.location.toString().toLowerCase();
 }els{
 currentPageUrthis.href.toString().toLowerCase();
 }

判断是否移动设备

functioisMobile(){
 i(typeothis._isMobil=='boolean'){
 returthis._isMobile;
 }
 vascreenWidtthis.getScreenWidth();
 vafixViewPortsExperimenrendererModel.runningExperiments.FixViewpor||rendererModel.runningExperiments.fixviewport;
 vafixViewPortsExperimentRunninfixViewPortsExperimen&(fixViewPortsExperiment.toLowerCase(=="new");
 if(!fixViewPortsExperiment){
 if(!this.isAppleMobileDevice()){
 screenWidtscreenWidth/window.devicePixelRatio;
 }
 }
 vaisMobileScreenSizscreenWidt;
 vaisMobileUserAgenfalse;
 this._isMobilisMobileScreenSiz&this.isTouchScreen();
 returthis._isMobile;
 }

判断是否移动设备访问

functioisMobileUserAgent(){
 retur(/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));
 }

判断是否苹果移动设备访问

functioisAppleMobileDevice(){
 retur(/iphone|ipod|ipad|Macintosh/i.test(navigator.userAgent.toLowerCase()));
 }

判断是否安卓移动设备访问

functioisAndroidMobileDevice(){
 retur(/android/i.test(navigator.userAgent.toLowerCase()));
 }

判断是否Touch屏幕

functioisTouchScreen(){
 retur(('ontouchstartiwindow|window.DocumentTouc&documeninstanceoDocumentTouch);
 }

判断是否打开视窗

functioisViewportOpen({
 retur!!document.getElementById('wixMobileViewport');
 }

获取移动设备初始化大小

functiogetInitZoom(){
 if(!this._initZoom){
 vascreenWidtMath.min(screen.heightscreen.width);
 if(this.isAndroidMobileDevice(&!this.isNewChromeOnAndroid()){
 screenWidtscreenWidth/window.devicePixelRatio;
 }
 this._initZooscreenWidt/document.body.offsetWidth;
 }
 returthis._initZoom;
 }

获取移动设备最大化大小

functiogetZoom(){
 vascreenWidt(Math.abs(window.orientation==Math.max(screen.heightscreen.widthMath.min(screen.heightscreen.width);
 if(this.isAndroidMobileDevice(&!this.isNewChromeOnAndroid()){
 screenWidtscreenWidth/window.devicePixelRatio;
 }
 vaFixViewPortsExperimenrendererModel.runningExperiments.FixViewpor|rendererModel.runningExperiments.fixviewport;
 vaFixViewPortsExperimentRunninFixViewPortsExperimen&(FixViewPortsExperimen=="New|FixViewPortsExperimen=="new");
 if(FixViewPortsExperimentRunning){
 returscreenWidtwindow.innerWidth;
 }else{
 returscreenWidtdocument.body.offsetWidth;
 }
 }

获取移动设备屏幕宽度

functiogetScreenWidth(){
 vasmallerSidMath.min(screen.widthscreen.height);
 vafixViewPortsExperimenrendererModel.runningExperiments.FixViewpor|rendererModel.runningExperiments.fixviewport;
 vafixViewPortsExperimentRunninfixViewPortsExperimen&(fixViewPortsExperiment.toLowerCase(=="new");
 if(fixViewPortsExperiment){
 if(this.isAndroidMobileDevice(&!this.isNewChromeOnAndroid()){
 smallerSidsmallerSide/window.devicePixelRatio;
 }
 }
 retursmallerSide;
 }

完美判断是否为网址

functioIsURL(strUrl{
 varegula/^\b(((https?|ftp):\/\/)?[-a-z-]+(\.[-a-z-]+)*\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|(([-])|([-]\d)|(\d\d)|([-]\d)|\d))\b(\/[-a-z-_:\@&?=+,.!\/~%\$]*)?)$/i
 i(regular.test(strUrl){
 returtrue;
 }els{
 returfalse;
 }
 }
getElementsByClassName
 .functiogetElementsByClassName(name{
 vatagdocument.getElementsByTagName('*'|document.all;
 vael[];
 fo(vatags.lengthi++{
 i(tags.className{
 vactags.className.split(');
 fo(vacs.lengthj++{
 i(nam=cs[j]{
 els.push(tags);
 break
 }
 }
 }
 }
 returels
}

获取页面高度

functiogetPageHeight(){
 vadocumentg.bodyg.documentElementg.compatMod="BackCompat"
 a
 g.documentElement;
 returMath.max(f.scrollHeighta.scrollHeightd.clientHeight);
 }

获取页面scrollLeft

functiogetPageScrollLeft(){
 vadocument;
 retura.documentElement.scrollLef|a.body.scrollLeft;
 }

获取页面可视宽度

functiogetPageViewWidth(){
 vadocumentd.compatMod="BackCompat"
 d.body
 d.documentElement;
 retura.clientWidth;
 }

获取页面宽度

functiogetPageWidth(){
 vadocumentg.bodyg.documentElementg.compatMod="BackCompat"
 a
 g.documentElement;
 returMath.max(f.scrollWidtha.scrollWidthd.clientWidth);
 }

获取页面scrollTop

functiogetPageScrollTop(){
 vadocument;
 retura.documentElement.scrollTo|a.body.scrollTop;
 }

获取页面可视高度

functiogetPageViewHeight({
 vadocumentd.compatMod="BackCompat"
 d.body
 d.documentElement;
 retura.clientHeight;
 }

去掉url前缀

functioremoveUrlPrefix(a){
 a=a.replace(/:/g,":").replace(/./g,".").replace(///g,"/");
 while(trim(a).toLowerCase().indexOf("http://")==){
 a=trim(a.replace(/http:\/\//i,""));
 }
 retura;
 }

随机数时间戳

functiouniqueId(){
 vaa=Math.random,b=parseInt;
 returNumber(neDate()).toString()+b(*a())+b(*a())+b(*a());
 }

全角半角转换

//iCase全到半,半到全,其他不转化
 functiochgCase(sStr,iCase){
 if(typeosSt!"string|sStr.lengt<|!(iCas==|iCas=)){
 retursStr;
 }
 vai,oRs=[],iCode;
 if(iCase){/*半->全*/
 for(i=i<sStr.length;i+=){
 iCodsStr.charCodeAt(i);
 if(iCod=){
 iCod;
 }elsif(iCod){
 iCod+;
 }
 oRs.push(String.fromCharCode(iCode));
 }
 }else{/*全->半*/
 for(i=i<sStr.length;i+=){
 iCodsStr.charCodeAt(i);
 if(iCod=){
 iCod;
 }elsif(iCod&iCod){
 iCod-;
 }
 oRs.push(String.fromCharCode(iCode));
 }
 }
 returoRs.join("");
 }

确认是否键盘有效输入值

functiocheckKey(iKey){
 if(iKe=|iKe=){returtrue;}/*空格和异常*/
 if(iKey>&iKe){returtrue;}/*数字*/
 if(iKey>&iKe){returtrue;}/*字母*/
 if(iKey>&iKe){returtrue;}/*数字键盘*/
 if(iKey>&iKe){returtrue;}/*数字键盘*/
 if(iKey>&iKe){returtrue;}/*符号*/
 if(iKey>&iKe){returtrue;}/*符号*/
 returfalse;
 }

获取网页被卷去的位置

functiogetScrollXY({
 returdocument.body.scrollTo{
 xdocument.body.scrollLeft,
 ydocument.body.scrollTop
 }{
 xdocument.documentElement.scrollLeft,
 ydocument.documentElement.scrollTop
 }
 }

日期格式化函数+调用方法

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;
 }
Javascript 相关文章推荐
jquery 插件 任意位置浮动固定层
Dec 25 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
Oct 18 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
Mar 05 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
Oct 17 Javascript
jquery实现加载进度条提示效果
Nov 23 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
Jan 25 Javascript
js select实现省市区联动选择
Apr 17 Javascript
js图片放大镜实例讲解(必看篇)
Jul 17 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
Nov 28 Javascript
详解vue-loader在项目中是如何配置的
Jun 04 Javascript
关于node-bindings无法在Electron中使用的解决办法
Dec 18 Javascript
Rust中的Struct使用示例详解
Aug 14 Javascript
详解AngularJS中module模块的导入导出
Dec 10 #Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
Dec 10 #Javascript
Spring mvc 接收json对象
Dec 10 #Javascript
SpringMVC返回json数据的三种方式
Dec 10 #Javascript
js操作数组函数实例小结
Dec 10 #Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
Dec 10 #Javascript
jQuery自定义动画函数实例详解(附demo源码)
Dec 10 #Javascript
You might like
用函数读出数据表内容放入二维数组
2006/10/09 PHP
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
php中常用字符串处理代码片段整理
2011/11/07 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
jQuery 页面 Mask实现代码
2010/01/09 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
javascript闭包(Closure)用法实例简析
2015/11/30 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
微信小程序实现折叠展开效果
2018/07/19 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
Python在不同目录下导入模块的实现方法
2017/10/27 Python
python批量修改图片尺寸,并保存指定路径的实现方法
2019/07/04 Python
python生成特定分布数的实例
2019/12/05 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
MoviePy简介及Python视频剪辑自动化
2020/12/18 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
自动化专业毕业生自荐信
2013/11/01 职场文书
工厂厂长岗位职责
2013/11/08 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
超越自我演讲稿
2014/05/21 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
一次性工伤赔偿协议书范本
2014/11/25 职场文书
刑事附带民事代理词
2015/05/25 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang