不得不分享的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;
};
以上就是本文的全部内容,喜欢的就收藏吧!