首页 > 编程 > JavaScript > 正文

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

2019-11-20 10:56:55
字体:
来源:转载
供稿:网友

本文中,收集了一些比较常用的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*(.*?)/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 ? (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());  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[^/>]*?>([^/x00]*?)<//script>/ig;  var arr = [];  while(arr = p.exec(s)) {    var p1 = /<script[^/>]*?src=/"([^/>]*?)/"[^/>]*?(reload=/"1/")?(?:charset=/"([/w/-]+?)/")?><//script>/i;    var arr1 = [];    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);    }  }  return s;}

16. 清除脚本内容

function stripscript(s) {  return s.replace(/<script.*?>.*?<//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 ? 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;        }       };    } else if(text){      scriptNode.text = text;    }    document.getElementsByTagName('head')[0].appendChild(scriptNode);  } catch(e) {}}

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

function $(id) {  return !id ? 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;};

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表