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


Posted in Javascript onDecember 23, 2015

本文中,收集了一些比较常用的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 相关文章推荐
JQuery 表单中textarea字数限制实现代码
Dec 07 Javascript
将CKfinder整合进CKEditor3.0的新方法
Jan 10 Javascript
Js event事件在IE、FF兼容性问题
Jan 01 Javascript
了解一点js的Eval函数
Jul 26 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
Oct 17 Javascript
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
JavaScript数组和循环详解
Apr 27 Javascript
jquery超简单实现手风琴效果的方法
Jun 05 Javascript
详解JavaScript中的表单验证
Jun 16 Javascript
jquery实现简易的移动端验证表单
Nov 08 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
Feb 15 Javascript
javascript中的with语句学习笔记及用法
Feb 17 Javascript
JQuery实现的按钮倒计时效果
Dec 23 #Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
Dec 23 #Javascript
JS实现的倒计时效果实例(2则实例)
Dec 23 #Javascript
JavaScript对象数组排序函数及六个用法
Dec 23 #Javascript
JavaScript中的函数(二)
Dec 23 #Javascript
分享JavaScript与Java中MD5使用两个例子
Dec 23 #Javascript
js实现正则匹配中文标点符号的方法
Dec 23 #Javascript
You might like
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
Youku 视频绝对地址获取的方法详解
2013/06/26 PHP
php四种基础算法代码实例
2013/10/29 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
javascript实现一个数值加法函数
2015/06/26 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
总结Javascript中的隐式类型转换
2016/08/24 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
使用Python下载Bing图片(代码)
2013/11/07 Python
python对html代码进行escape编码的方法
2015/05/04 Python
python处理二进制数据的方法
2015/06/03 Python
Python列表切片操作实例总结
2019/02/19 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
心得体会范文
2014/01/04 职场文书
领导调研接待方案
2014/02/27 职场文书
项目施工员岗位职责
2014/03/09 职场文书
家长会主持词开场白
2015/05/29 职场文书
党员反邪教心得体会
2016/01/15 职场文书
银行工作心得体会范文
2016/01/23 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技