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

本文中,收集了一些比较常用的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;
};

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javascript
, 函数
方法
不得不学的生活小技巧、javascript常用函数、javascript常用方法、javascript技巧、javascript常用单词,以便于您获取更多的相关知识。

时间: 2024-10-31 10:02:39

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

谈谈JavaScript异步函数发展历程_javascript技巧

<The Evolution of Asynchronous JavaScript>外文梳理了JavaScript异步函数的发展历程,首先通过回调函数实现异步,之后又经历了Promise/A+.生成器函数,而未来将是async函数的.感谢景庄对该文章的翻译,内容如下: 现在让我们一起来回顾这些年来JavaScript异步函数的发展历程吧. 回调函数Callbacks 似乎一切应该从回调函数开始谈起. 异步JavaScript 正如我们所知道的那样,在JavaScript中,异步编程方式只能通过

javascript匿名函数实例分析_javascript技巧

本文实例讲述了javascript匿名函数的用法.分享给大家供大家参考.具体分析如下: 摘要: 本文讲解的是javascript最基础也是最重要的东西--函数,之所以写这篇文章,是因为面试的时候问到了,也算是温故而知新了. 先上个例子,如果你看懂了,说明你已经理解了本文要讲的. 复制代码 代码如下: var f = (function() {     function f() {return 10;}     return f();     function f() {return 20;}  

JavaScript匿名函数用法分析_javascript技巧

本文实例讲述了JavaScript匿名函数用法.分享给大家供大家参考.具体如下: 一.定义一个函数 在JavaScript中,可以通过"函数声明"和"函数表达式"来定义一个函数,比如 1.通过"函数声明"来定义一个函数 function t1(){} 2.通过"函数表达式"来定义一个函数 t2 = function(){} 但是两种方式定义函数,效果是不同的 t1是函数声明,'词法分析'时,AO.t1 = function()

javascript的函数劫持浅析_javascript技巧

javascript的函数劫持是什么? 函数劫持,顾名思义,即在一个函数运行之前把它劫持下来,添加我们想要的功能.当这个函数实际运行的时候,它已经不是原本的函数了,而是带上了被我们添加上去的功能.这也是我们常见的钩子函数的原理之一. 乍一看上去,这很像是函数的改写.函数的改写也可以理解为是函数劫持的一种,但是这种方式太恶心了.作为一个劫持者,在绑票获得好处以后也应该遵守职业道德,把人原封不动地还回去,所以我们得在合适的地方把函数原本的功能给重新调用回来. 推而广之,其实"劫持"这一概念

浅谈Javascript嵌套函数及闭包_javascript技巧

[嵌套函数] JavaScript允许嵌入的函数,允许函数用作数据,并且在函数词法作用域下面,可以产生与传统面向对象语言不同的惊人地方. 首先,JavaScript的函数是通过词法来划分作用域的,而不是动态的划分作用域的,于是,函数的是在定义它们的作用域中运行,而不是在执行它们的作用域中运行,所以,当嵌套函数和它的外围函数定义在同一个词法作用域中的时候,是很容易理解的.比如下面很平淡无奇的代码: 复制代码 代码如下: var x = 'global'; function f () { var x

javascript时间函数基础介绍_javascript技巧

javascript时间函数 javascript提供了Date对象来进行时间和日期的计算. Date对象有多种构造函数: new Date() //当前时间new Date(milliseconds) //距离起始时间1970年1月1日的毫秒数new Date(datestring) //字符串代表的日期与时间.此字符串可以使用Date.parse()转换,比如"Jannuary 1, 1998 20:13:15"new Date(year, month, day, hours, m

javascript定义函数的方法_javascript技巧

JavaScript 使用关键字 function 定义函数. 函数可以通过声明定义,也可以是一个表达式. 函数声明 在之前的教程中,你已经了解了函数声明的语法 : function functionName(parameters) { 执行的代码 } 函数声明后不会立即执行,会在我们需要的时候调用到.实例 function myFunction(a, b) { return a * b; } 函数表达式 JavaScript 函数可以通过一个表达式定义. 函数表达式可以存储在变量中: 实例 v

javascript常用函数归纳整理_javascript技巧

本文整理归纳了一些js常用函数,其中包括对数据操作,字符替换操作,日期及加解密操作函数,还有一些简单的验证函数.便于大家查阅参考.相信对大家会有所帮助. 1.typeof.constructor.instanceof对数组的判断 复制代码 代码如下: var arr = [1,5,6,9,8,5,4]; //var arr = new Array(1,5,6,9,8,5,4); console.log(typeof arr);//object console.log(arr.constructo

详谈JavaScript 匿名函数及闭包_javascript技巧

1.匿名函数 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途.匿名函数:就是没有函数名的函数. 1.1 函数的定义,首先简单介绍一下函数的定义,大致可分为三种方式 第一种:这也是最常规的一种 复制代码 代码如下: function double(x){     return 2 * x;   } 第二种:这种方法使用了Function构造函数,把参数列表和函数体都作为字符串,很不方便,不建议使用. 复制代码 代码如下: var double = new Functio