Home  >  Article  >  Web Front-end  >  不得不分享的JavaScript常用方法函数集(上)_javascript技巧

不得不分享的JavaScript常用方法函数集(上)_javascript技巧

WBOY
WBOYOriginal
2016-05-16 15:23:521043browse

本文中,收集了一些比较常用的Javascript函数,希望对学习JS的朋友们有所帮助。
1. 字符串长度截取

function cutstr(str, len) {
  var temp,
    icount = 0,
    patrn = /[^\x00-\xff]/,
    strre = "";
  for (var i = 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;
    }
  }
  return strre + "..."
}

2. 替换全部

String.prototype.replaceAll = function(s1, s2) {
  return this.replace(new RegExp(s1, "gm"), s2)
}

3. 清除空格

String.prototype.trim = function() {
  var reExtraSpace = /^\s*(.*&#63;)\s+$/;
  return this.replace(reExtraSpace, "$1")
}

4. 清除左空格/右空格

function ltrim(s){ return s.replace( /^(\s*| *)/, ""); } 
function rtrim(s){ return s.replace( /(\s*| *)$/, ""); }

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

String.prototype.startWith = function (s) {
  return this.indexOf(s) == 0
}

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

String.prototype.endWith = function (s) {
  var d = this.length - s.length;
  return (d >= 0 && this.lastIndexOf(s) == d)
}

7. 转义html标签

function HtmlEncode(text) {
  return text.replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g, '>')
}

8. 时间日期格式转换

Date.prototype.Format = function(formatStr) {
  var str = formatStr;
  var Week = ['日', '一', '二', '三', '四', '五', '六'];
  str = str.replace(/yyyy|YYYY/, this.getFullYear());
  str = str.replace(/yy|YY/, (this.getYear() % 100) > 9 &#63; (this.getYear() % 100).toString() : '0' + (this.getYear() % 100));
  str = str.replace(/MM/, (this.getMonth() + 1) > 9 &#63; (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 &#63; this.getDate().toString() : '0' + this.getDate());
  str = str.replace(/d|D/g, this.getDate());
  str = str.replace(/hh|HH/, this.getHours() > 9 &#63; this.getHours().toString() : '0' + this.getHours());
  str = str.replace(/h|H/g, this.getHours());
  str = str.replace(/mm/, this.getMinutes() > 9 &#63; this.getMinutes().toString() : '0' + this.getMinutes());
  str = str.replace(/m/g, this.getMinutes());
  str = str.replace(/ss|SS/, this.getSeconds() > 9 &#63; this.getSeconds().toString() : '0' + this.getSeconds());
  str = str.replace(/s|S/g, this.getSeconds());
  return str
}

9. 判断是否为数字类型

function isDigit(value) {
  var patrn = /^[0-9]*$/;
  if (patrn.exec(value) == null || value == "") {
    return false
  } else {
    return true
  }
}

10. 设置cookie值

function setCookie(name, value, Hours) {
  var d = new Date();
  var offset = 8;
  var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
  var nd = utc + (3600000 * offset);
  var exp = new Date(nd);
  exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);
  document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString() + ";domain=360doc.com;"
}

11. 获取cookie值

function getCookie(name) {
  var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
  if (arr != null) return unescape(arr[2]);
  return null
}

12. 加入收藏夹

function AddFavorite(sURL, sTitle) {
  try {
    window.external.addFavorite(sURL, sTitle)
  } catch(e) {
    try {
      window.sidebar.addPanel(sTitle, sURL, "")
    } catch(e) {
      alert("加入收藏失败,请使用Ctrl+D进行添加")
    }
  }
}

13. 设为首页

function setHomepage() {
  if (document.all) {
    document.body.style.behavior = 'url(#default#homepage)';
    document.body.setHomePage('http://w3cboy.com')
  } else if (window.sidebar) {
    if (window.netscape) {
      try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
      } catch(e) {
        alert("该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true")
        }
    }
    var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
    prefs.setCharPref('browser.startup.homepage', 'http://w3cboy.com')
  }
}

14. 加载样式文件

function LoadStyle(url) {
  try {
    document.createStyleSheet(url)
  } catch(e) {
    var cssLink = document.createElement('link');
    cssLink.rel = 'stylesheet';
    cssLink.type = 'text/css';
    cssLink.href = url;
    var head = document.getElementsByTagName('head')[0];
    head.appendChild(cssLink)
  }
}

15. 返回脚本内容

function evalscript(s) {
  if(s.indexOf('<script') == -1) return s;
  var p = /<script[^\>]*&#63;>([^\x00]*&#63;)<\/script>/ig;
  var arr = [];
  while(arr = p.exec(s)) {
    var p1 = /<script[^\>]*&#63;src=\"([^\>]*&#63;)\"[^\>]*&#63;(reload=\"1\")&#63;(&#63;:charset=\"([\w\-]+&#63;)\")&#63;><\/script>/i;
    var arr1 = [];
    arr1 = p1.exec(arr[0]);
    if(arr1) {
      appendscript(arr1[1], '', arr1[2], arr1[3]);
    } else {
      p1 = /<script(.*&#63;)>([^\x00]+&#63;)<\/script>/i;
      arr1 = p1.exec(arr[0]);
      appendscript('', arr1[2], arr1[1].indexOf('reload=') != -1);
    }
  }
  return s;
}

16. 清除脚本内容

function stripscript(s) {
  return s.replace(/<script.*&#63;>.*&#63;<\/script>/ig, '');
}

17. 动态加载脚本文件

function appendscript(src, text, reload, charset) {
  var id = hash(src + text);
  if(!reload && in_array(id, evalscripts)) return;
  if(reload && $(id)) {
    $(id).parentNode.removeChild($(id));
  }
  evalscripts.push(id);
  var scriptNode = document.createElement("script");
  scriptNode.type = "text/javascript";
  scriptNode.id = id;
  scriptNode.charset = charset &#63; charset : (BROWSER.firefox &#63; 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;
        }
       };
    } else if(text){
      scriptNode.text = text;
    }
    document.getElementsByTagName('head')[0].appendChild(scriptNode);
  } catch(e) {}
}

18. 返回按ID检索的元素对象

function $(id) {
  return !id &#63; null : document.getElementById(id);
}

19. 跨浏览器绑定事件

function addEventSamp(obj,evt,fn){ 
  if(!oTarget){return;}
  if (obj.addEventListener) { 
    obj.addEventListener(evt, fn, false); 
  }else if(obj.attachEvent){ 
    obj.attachEvent('on'+evt,fn); 
  }else{
    oTarget["on" + sEvtType] = fn;
  } 
}

20. 跨浏览器删除事件

function delEvt(obj,evt,fn){
  if(!obj){return;}
  if(obj.addEventListener){
    obj.addEventListener(evt,fn,false);
  }else if(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);
  });
  return this;
};

以上就是本文的全部内容,喜欢的就收藏吧!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn