资讯专栏INFORMATION COLUMN

js常用的函数库

DevTalking / 826人阅读

摘要:移动端返回上一页移动端返回上一页如果不支持,返回首页的和有获取随机数获取随机数位手机号码验证判断是否是汉字中日韩统一表意字符。后至为空兼容象形文字。后至为空不定期更新,看心情更新参考链接

阻止冒泡、默认行为、事件捕获
 /* funname preventEventPropagation
  * desc 阻止冒泡事件&阻止默认行为&阻止事件捕获
  * params {name: string}参数名称
  * return {string or null}
  */
 var preventEventPropagation = function(evt) {
     var e = evt || window.event;
     if (e) {
         e.preventDefault();
         e.stopPropagation();
     }
     return false;
 };
获取地址参数
 /* funname getQueryString
  * desc 获取地址参数
  * params {name: string}参数名称
  * return {string or null}
  */
 var getQueryString = function(name) {
     var r, reg;
     reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
     r = window.location.search.substr(1).match(reg);
     if (r !== null) {
         return r[2]; //不解码
     }
     return null;
 };
判断微信环境
 /*
  *desc:判断微信环境
  *params:null
  */
 var isInWechat = function() {
     var ua = navigator.userAgent.toLowerCase();
     if (ua.match(/MicroMessenger/i) == "micromessenger") {
         return true;
     } else {
         return false;
     }
 };
获取环境参数
 /*
  *funname:platformFn
  *des:获取环境参数
  *params: 
  *return: [object]
  */
 var platformFn = function() {
     var u = navigator.userAgent,
         app = navigator.appVersion;
     return {
         webKit: u.indexOf("AppleWebKit") > -1, //苹果、谷歌内核
         mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
         ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
         android: u.indexOf("Android") > -1 || u.indexOf("Adr") > -1, //android终端
         iPhone: u.indexOf("iPhone") > -1, //是否为iPhone或者QQHD浏览器
         iPad: u.indexOf("iPad") > -1, //是否iPad
         webApp: u.indexOf("Safari") == -1, //是否web应该程序,没有头部与底部
         weixin: u.indexOf("MicroMessenger") > -1, //是否微信 (2015-01-22新增)
     };
 };
判断是否为数组
 // 判断是否为数组
 /*
  *funname:isArray
  *des:判断是否为数组
  *params: [array] arr
  *return: [bolean]
  */
function isArray(arr) {
    if (arr typeof arr === "object" && arr.constructor == Array) {
        return true;
    }
    return false;
}

数组除重
 // 数组除重
 /*
  *funname:arrayUnique
  *des:数组去重
  *params: [array] arr
  *return: [array]
  */
 var arrayUnique = function(arr) {
     var newArr = [];
     var temp = {};
     var len = arr.length;
     for (var index = 0; index < len; index++) {
         var key = typeof(arr[index]) + arr[index];
         if (temp[key] !== 1) {
             newArr.push(arr[index]);
             temp[key] = 1;
         }
     }
     return newArr;
 };

获取cookie
 /*
  *funname:getCookie
  *des:获取cookie
  *params: [array] arr
  *return: [array]
  */
 function getCookie(c_name) {
     if (document.cookie.length > 0) {
         c_start = document.cookie.indexOf(c_name + "=")
         if (c_start != -1) {
             c_start = c_start + c_name.length + 1
             c_end = document.cookie.indexOf(";", c_start)
             if (c_end == -1) c_end = document.cookie.length
             return unescape(document.cookie.substring(c_start, c_end))
         }
     }
     return ""
 }

设置cookie
 /*
  *funname:setCookie
  *des:设置cookie
  *params: [string] c_name,[string] value,expiredays
  *return: [array]
  */
 function setCookie(c_name, value, expiredays) {
     var exdate = new Date()
     exdate.setDate(exdate.getDate() + expiredays)
     document.cookie = c_name + "=" + escape(value) +
         ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString())
 }
检测cookie
 /*
  *funname:checkCookie
  *des:检测cookie
  *params: 
  *return: 
  */
 function checkCookie() {
     username = getCookie("username")
     if (username != null && username != "") {
         return true;
     } else {
         return false;
     }
 }
获取localstorage
 /*
  *funname:getLocalStorage
  *des:获取localstorage
  *params: [string] key
  *return: [string]
  */
 function getLocalStorage(key) {
     if (localStorage) {
         return localStorage.getItem(key);
     } else {
         // 使用cookie获取
         return getCookie(key);
     }
     return "";
 }
设置localstorage
 /*
  *funname:setLocalStorage
  *des:设置localstorage
  *params: 
  *return: null
  */
 function setLocalStorage(key, value, expiredays) {
     if (localStorage) {
         console.log(setLocalStorage);
         localStorage.setItem(key, value);
     } else {
         // 使用cookie保存
         setCookie(key, value, expiredays);
     }
 }
清空localstorage
/*
 *funname:clearLocalStorage
 *des:清空localstorage
 *params: [string] key
 *return: [string]
 */
function clearLocalStorage(key) {
  if (localStorage) {
    localStorage.removeItem(key);
  } else {
    // 使用cookie获取
    clearCookie(key)
  }
}
解决ios滚动问题的插件
 /**
  * ScrollFix v0.1
  * http://www.joelambert.co.uk
  *
  * Copyright 2011, Joe Lambert.
  * Free to use under the MIT license.
  * http://www.opensource.org/licenses/mit-license.php
  * des: 解决ios滚动问题的插件
  */

 var ScrollFix = function(elem) {
     // Variables to track inputs
     var startY, startTopScroll;

     elem = elem || document.querySelector(elem);

     // If there is no element, then do nothing  
     if (!elem)
         return;

     // Handle the start of interactions
     elem.addEventListener("touchstart", function(event) {
         startY = event.touches[0].pageY;
         startTopScroll = elem.scrollTop;

         if (startTopScroll <= 0)
             elem.scrollTop = 1;

         if (startTopScroll + elem.offsetHeight >= elem.scrollHeight)
             elem.scrollTop = elem.scrollHeight - elem.offsetHeight - 1;
     }, false);
 };
动态加载js
 /*
  *funname:loadScript
  *des:动态加载js
  *params: [string] filepath,[function] onloadCallback
  *return: null
  */
function loadScript(filepath, onloadCallback) {
    var scriptDom = document.createElement("script");
    scriptDom.onload = scriptDom.onreadystatechange = onloadCallback;
    scriptDom.type = "text/javascript";
    scriptDom.src = filepath;
    document.body.appendChild(scriptDom);
}
克隆对象
/*
 *desc:针对纯 JSON 数据对象的深拷贝
 *params:[object] obj
 */
var cloneObj = function(obj) {
  if (obj) {
    var newObj = JSON.stringify(obj)
    newObj = JSON.parse(newObj)
    return newObj
  }
  return null
};

局限性:

 - 无法复制函数 
 - 原型链没了,对象就是object,所属的类没了。
移动端返回上一页
/*
 *desc:移动端返回上一页
 *params:
 */
var appGoBack = function() {
  if (!url || url == "") {
    window.history.go(-1);
    setTimeout(function() {
      // 如果不支持history.go,返回首页
      location.replace("/");
    }, 300);
  } else {
    // ios的.history.go和history.back有bug
    location.replace(url);
  }
  return false;
}
获取随机数
/*
 * funname:GetRandomNum
 *params:[number]
 * des:获取随机数
 *return:
 */
var getRandom = function(Min, Max) {   
  var Range = Max - Min;   
  var Rand = Math.random();   
  return (Min + Math.round(Rand * Range));   
};
11位手机号码验证
function checkPhone(phone ){ 
    if(/^1(3|4|5|7|8)d{9}$/.test(phone)){ 
        return true; 
    }
    return false; 
}
判断是否是汉字
function isChinese(str){   
   var reg = /[u4E00-u9FA5uF900-uFA2D]/;
   return reg.test(str);
}

//u4e00-u9fbf:  unicode CJK(中日韩)统一表意字符。u9fa5后至u9fbf为空
//uF900-uFAFF:  unicode CJK 兼容象形文字  。uFA2D后至uFAFF为空

不定期更新,看心情更新~

参考链接:http://www.cnblogs.com/baiyyg...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/81088.html

相关文章

  • 前端常用插件、工具类汇总

    摘要:页面调试腾讯开发维护的代码调试发布,错误监控上报,用户问题定位。同样是由腾讯开发维护的代码调试工具,是针对移动端的调试工具。前端业务代码工具库。动画库动画库,也是目前通用的动画库。 本人微信公众号:前端修炼之路,欢迎关注 本篇文章整理自己使用过的和看到过的一些插件和工具,方便日后自己查找和使用。 另外,感谢白小明,文中很多的工具来源于此。 弹出框 layer:http://layer....

    GitCafe 评论0 收藏0
  • 推荐一个js常用工具函数

    etools 常用js函数整理 安装和使用 使用npm安装:npm install -s etools通过es6模块引入,如import _ from etools;console.log(_.extend(true,{},{age:23})); 下载并在页面引入etools.js直接调用ETool对象中得方法,如console.log(ETools.extend(true,{},{age:2...

    lemanli 评论0 收藏0
  • js(1) -- underscore.js下划线函数

    摘要:它提供了几十种函数式编程的方法,弥补了标准库的不足。框架就将这个库作为自己的工具库。常用函数内部机制简介定义了一个下划线对象,函数库的所有方法都属于这个对象。 1、简介 1.1 简介:  Underscore.js是一个JavaScript库,它提供了大量有用的函数编程助手,其包括超过100个功能,如日常功能:map、filter、invoke——以及更专业的功能:函数绑定、javas...

    GHOST_349178 评论0 收藏0
  • JS标准部分内置对象常用属性和方法

    摘要:常用的属性和方法创建空创建给对象添加属性给对象添加多个属性给对象添加给对象添加返回属性配置对象返回所有属性名数组返回对象原型对象阻止对象扩展冻结对象密封对象检测是否可扩展布尔值检测是否冻结布尔值检测是否密封布尔值对象原型对象对象实例的属性和 常用Object的属性和方法 创建空Object var o1 = {}; var o2 = Object.create(Object.prot...

    source 评论0 收藏0
  • javascript功能插件大集合 前端常用插件 js常用插件

    摘要:转载来源包管理器管理着库,并提供读取和打包它们的工具。能构建更好应用的客户端包管理器。一个整合和的最佳思想,使开发者能快速方便地组织和编写前端代码的下一代包管理器。很棒的组件集合。隐秘地使用和用户数据。 转载来源:https://github.com/jobbole/aw... 包管理器管理着 javascript 库,并提供读取和打包它们的工具。•npm – npm 是 javasc...

    netmou 评论0 收藏0
  • javascript功能插件大集合 前端常用插件 js常用插件

    摘要:转载来源包管理器管理着库,并提供读取和打包它们的工具。能构建更好应用的客户端包管理器。一个整合和的最佳思想,使开发者能快速方便地组织和编写前端代码的下一代包管理器。很棒的组件集合。隐秘地使用和用户数据。 转载来源:https://github.com/jobbole/aw... 包管理器管理着 javascript 库,并提供读取和打包它们的工具。•npm – npm 是 javasc...

    Hydrogen 评论0 收藏0

发表评论

0条评论

DevTalking

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<