不得不分享的JavaScript常用方法函数集(上)
本文中,收集了一些比较常用的Javascript函数,希望对学习JS的朋友们有所帮助。
1.字符串长度截取
functioncutstr(str,len){ vartemp, icount=0, patrn=/[^\x00-\xff]/, strre=""; for(vari=0;i<str.length;i++){ if(icount<len-1){ temp=str.substr(i,1); if(patrn.exec(temp)==null){ icount=icount+1 }else{ icount=icount+2 } strre+=temp }else{ break; } } returnstrre+"..." }
2.替换全部
String.prototype.replaceAll=function(s1,s2){ returnthis.replace(newRegExp(s1,"gm"),s2) }
3.清除空格
String.prototype.trim=function(){ varreExtraSpace=/^\s*(.*?)\s+$/; returnthis.replace(reExtraSpace,"$1") }
4.清除左空格/右空格
functionltrim(s){returns.replace(/^(\s*|*)/,"");} functionrtrim(s){returns.replace(/(\s*|*)$/,"");}
5.判断是否以某个字符串开头
String.prototype.startWith=function(s){ returnthis.indexOf(s)==0 }
6.判断是否以某个字符串结束
String.prototype.endWith=function(s){ vard=this.length-s.length; return(d>=0&&this.lastIndexOf(s)==d) }
7.转义html标签
functionHtmlEncode(text){ returntext.replace(/&/g,'&').replace(/\"/g,'"').replace(/</g,'<').replace(/>/g,'>') }
8.时间日期格式转换
Date.prototype.Format=function(formatStr){ varstr=formatStr; varWeek=['日','一','二','三','四','五','六']; str=str.replace(/yyyy|YYYY/,this.getFullYear()); str=str.replace(/yy|YY/,(this.getYear()%100)>9?(this.getYear()%100).toString():'0'+(this.getYear()%100)); str=str.replace(/MM/,(this.getMonth()+1)>9?(this.getMonth()+1).toString():'0'+(this.getMonth()+1)); str=str.replace(/M/g,(this.getMonth()+1)); str=str.replace(/w|W/g,Week[this.getDay()]); str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0'+this.getDate()); str=str.replace(/d|D/g,this.getDate()); str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0'+this.getHours()); str=str.replace(/h|H/g,this.getHours()); str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0'+this.getMinutes()); str=str.replace(/m/g,this.getMinutes()); str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0'+this.getSeconds()); str=str.replace(/s|S/g,this.getSeconds()); returnstr }
9.判断是否为数字类型
functionisDigit(value){ varpatrn=/^[0-9]*$/; if(patrn.exec(value)==null||value==""){ returnfalse }else{ returntrue } }
10.设置cookie值
functionsetCookie(name,value,Hours){ vard=newDate(); varoffset=8; varutc=d.getTime()+(d.getTimezoneOffset()*60000); varnd=utc+(3600000*offset); varexp=newDate(nd); exp.setTime(exp.getTime()+Hours*60*60*1000); document.cookie=name+"="+escape(value)+";path=/;expires="+exp.toGMTString()+";domain=360doc.com;" }
11.获取cookie值
functiongetCookie(name){ vararr=document.cookie.match(newRegExp("(^|)"+name+"=([^;]*)(;|$)")); if(arr!=null)returnunescape(arr[2]); returnnull }
12.加入收藏夹
functionAddFavorite(sURL,sTitle){ try{ window.external.addFavorite(sURL,sTitle) }catch(e){ try{ window.sidebar.addPanel(sTitle,sURL,"") }catch(e){ alert("加入收藏失败,请使用Ctrl+D进行添加") } } }
13.设为首页
functionsetHomepage(){ if(document.all){ document.body.style.behavior='url(#default#homepage)'; document.body.setHomePage('http://w3cboy.com') }elseif(window.sidebar){ if(window.netscape){ try{ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect") }catch(e){ alert("该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入about:config,然后将项signed.applets.codebase_principal_support值该为true") } } varprefs=Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch); prefs.setCharPref('browser.startup.homepage','http://w3cboy.com') } }
14.加载样式文件
functionLoadStyle(url){ try{ document.createStyleSheet(url) }catch(e){ varcssLink=document.createElement('link'); cssLink.rel='stylesheet'; cssLink.type='text/css'; cssLink.href=url; varhead=document.getElementsByTagName('head')[0]; head.appendChild(cssLink) } }
15.返回脚本内容
functionevalscript(s){ if(s.indexOf('<script')==-1)returns; varp=/<script[^\>]*?>([^\x00]*?)<\/script>/ig; vararr=[]; while(arr=p.exec(s)){ varp1=/<script[^\>]*?src=\"([^\>]*?)\"[^\>]*?(reload=\"1\")?(?:charset=\"([\w\-]+?)\")?><\/script>/i; vararr1=[]; arr1=p1.exec(arr[0]); if(arr1){ appendscript(arr1[1],'',arr1[2],arr1[3]); }else{ p1=/<script(.*?)>([^\x00]+?)<\/script>/i; arr1=p1.exec(arr[0]); appendscript('',arr1[2],arr1[1].indexOf('reload=')!=-1); } } returns; }
16.清除脚本内容
functionstripscript(s){ returns.replace(/<script.*?>.*?<\/script>/ig,''); }
17.动态加载脚本文件
functionappendscript(src,text,reload,charset){ varid=hash(src+text); if(!reload&&in_array(id,evalscripts))return; if(reload&&$(id)){ $(id).parentNode.removeChild($(id)); } evalscripts.push(id); varscriptNode=document.createElement("script"); scriptNode.type="text/javascript"; scriptNode.id=id; scriptNode.charset=charset?charset:(BROWSER.firefox?document.characterSet:document.charset); try{ if(src){ scriptNode.src=src; scriptNode.onloadDone=false; scriptNode.onload=function(){ scriptNode.onloadDone=true; JSLOADED[src]=1; }; scriptNode.onreadystatechange=function(){ if((scriptNode.readyState=='loaded'||scriptNode.readyState=='complete')&&!scriptNode.onloadDone){ scriptNode.onloadDone=true; JSLOADED[src]=1; } }; }elseif(text){ scriptNode.text=text; } document.getElementsByTagName('head')[0].appendChild(scriptNode); }catch(e){} }
18.返回按ID检索的元素对象
function$(id){ return!id?null:document.getElementById(id); }
19.跨浏览器绑定事件
functionaddEventSamp(obj,evt,fn){ if(!oTarget){return;} if(obj.addEventListener){ obj.addEventListener(evt,fn,false); }elseif(obj.attachEvent){ obj.attachEvent('on'+evt,fn); }else{ oTarget["on"+sEvtType]=fn; } }
20.跨浏览器删除事件
functiondelEvt(obj,evt,fn){ if(!obj){return;} if(obj.addEventListener){ obj.addEventListener(evt,fn,false); }elseif(oTarget.attachEvent){ obj.attachEvent("on"+evt,fn); }else{ obj["on"+evt]=fn; } }
21.为元素添加on方法
Element.prototype.on=Element.prototype.addEventListener; NodeList.prototype.on=function(event,fn){、 []['forEach'].call(this,function(el){ el.on(event,fn); }); returnthis; };
以上就是本文的全部内容,喜欢的就收藏吧!