Heim > Web-Frontend > js-Tutorial > Eine Sammlung häufig verwendeter JavaScript-Methoden und -Funktionen, die ich teilen muss (Teil 1)_Javascript-Kenntnisse

Eine Sammlung häufig verwendeter JavaScript-Methoden und -Funktionen, die ich teilen muss (Teil 1)_Javascript-Kenntnisse

WBOY
Freigeben: 2016-05-16 15:23:52
Original
1094 Leute haben es durchsucht

本文中,收集了一些比较常用的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 + "..."
}
Nach dem Login kopieren

2. 替换全部

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

3. 清除空格

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

4. 清除左空格/右空格

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

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

String.prototype.startWith = function (s) {
  return this.indexOf(s) == 0
}
Nach dem Login kopieren

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

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

7. 转义html标签

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

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
}
Nach dem Login kopieren

9. 判断是否为数字类型

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

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;"
}
Nach dem Login kopieren

11. 获取cookie值

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

12. 加入收藏夹

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

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')
  }
}
Nach dem Login kopieren

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)
  }
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

16. 清除脚本内容

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

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) {}
}
Nach dem Login kopieren

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

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

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;
  } 
}
Nach dem Login kopieren

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;
  }
}
Nach dem Login kopieren

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;
};
Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage