UNPKG

kurisu

Version:
273 lines (213 loc) 8.51 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = global || self, factory(global.kurisu = {})); }(this, function (exports) { 'use strict'; function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function (obj) { return typeof obj; }; } else { _typeof = function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } var _arguments = arguments; var _console = console, log = _console.log, error = _console.error, time = _console.time, timeEnd = _console.timeEnd, round = Math.round, random = Math.random, floor = Math.floor, _navigator = navigator, userAgent = _navigator.userAgent; //********** 1缓存 ********* // 写cookies var setCookie = function setCookie(name, val, seconds) { // 值不存在写入失败,防止写入 'null' if (isNil(val)) return; // 默认有效一小时 seconds = seconds || 60 * 60; var exp = new Date(); exp.setTime(exp.getTime() + seconds * 1000); document.cookie = name + '=' + escape(val) + ';expires=' + exp.toGMTString(); }; // 读取cookies var getCookie = function getCookie(name) { var arr, re = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return (arr = document.cookie.match(re)) ? unescape(arr[2]) : null; }; // 删除cookies,可以传入多个参数 var delCookie = function delCookie() { var exp = new Date(); exp.setTime(exp.getTime() - 1); var arr = [].slice.call(_arguments, 0); arr.forEach(function (el) { var cval = getCookie(el); if (cval != null) document.cookie = el + '=' + cval + ';expires=' + exp.toGMTString(); }); log(document.cookie); }; // 删除SessionStorage,可以传入多个参数 var delSessionStorage = function delSessionStorage() { var arr = [].slice.call(_arguments, 0); arr.forEach(function (el) { sessionStorage.removeItem(el); }); log(sessionStorage); }; // 设置SessionStorage的数据,如果是对象自动转成JSON var addSessionStorage = function addSessionStorage(name, val) { try { saveVal = isJsonString(JSON.stringify(val)) ? JSON.stringify(val) : val; sessionStorage.setItem(name, saveVal); log(sessionStorage); } catch (err) { error(err); log('设置setSessionStorage失败'); } }; // 获取SessionStorage的数据,如果是JSON自动转成对象 var getSessionStorage = function getSessionStorage(name) { var data = sessionStorage.getItem(name); return isJsonString(data) ? JSON.parse(data) : data; }; //*********** 2判断 ********* // 判断是否是微信浏览器 var isWxBrowser = function isWxBrowser() { var ua = userAgent.toLowerCase(); return ua.match(/MicroMessenger/i) == 'micromessenger' ? true : false; }; // 判断是否是ios var isIOS = function isIOS() { var re = /(iPhone|iPad|iPod|iOS)/i; return re.test(userAgent) ? true : false; }; // 判断是否是Android var isAndroid = function isAndroid() { var re = /(Android)/i; return re.test(userAgent) ? true : false; }; // 判断输入的内容是否为空 // val ==null的时候,val === undefined 会报错 var isNil = function isNil(val) { return typeof val === 'undefined' || val === null || val === '' ? true : false; }; // 判断是否是JSON字符串 var isJsonString = function isJsonString(str) { try { if (_typeof(JSON.parse(str)) == 'object') { return true; } } catch (err) { error(err); return false; } }; // 判断手机号是否合法 var isPhoneLegal = function isPhoneLegal(val) { var re = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/; return re.test(val) ? true : false; }; // 判断验证码是否合法 var isCodeLegal = function isCodeLegal(val) { var re = /^[0-9]{4}$/; return re.test(val) ? true : false; }; /** * 判断邮箱是否合法 * @param {String} email */ var isEmailLegal = function isEmailLegal(email) { var re = /^([\w-_]+(?:\.[\w-_]+)*)@((?:[a-z0-9]+(?:-[a-zA-Z0-9]+)*)+\.[a-z]{2,6})$/i; return re.exec(email) == null ? false : true; }; /*判断身份证是否合法*/ var isIdLegal = function isIdLegal(id) { var re = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/; return re.test(id); }; /*判断密码是否合法*/ var isPasswordLegal = function isPasswordLegal(password) { var re = /[A-Za-z0-9]{6,14}/; return re.test(password); }; //******** 3 url******** // 获取URL地址参数 var getQueryString = function getQueryString(name, url) { var re = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i'); url = !url || url == '' ? location.search : url.substring(url.indexOf('?')); r = url.substr(1).match(re); return r != null ? unescape(r[2]) : null; }; // 获取html页面名 var getHtmlDocName = function getHtmlDocName() { var str = location.href; str = str.substring(str.lastIndexOf('/') + 1); str = str.substring(0, str.lastIndexOf('.')); return str; }; // 页面刷新,添加时间戳,有些安卓手机在微信中location.reload()失效 var reloadPage = function reloadPage() { // 判断是否有页面有参数 var queryStr = location.href.indexOf('?') > 0 ? '&' : '?'; location.href += queryStr + 't=' + new Date().getTime(); }; //******** 4 其它******** // 过滤表单的emoji表情 var filterEmoji = function filterEmoji(str) { var re = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi; return str.replace(re, ''); }; // 获取倒计时 var countdown = function countdown(date, compareDate) { //时间格式是时间戳 compareDate = compareDate ? new Date(compareDate) : new Date(); var time = compareDate.getTime() / 1000; var end_time = new Date(date).getTime() / 1000; var lag = end_time - time; return { lag: lag, day: floor(lag / 3600 / 24), hour: floor(lag / 3600 % 24), minute: floor(lag / 60 % 60), second: floor(lag % 60) }; }; // 获取某个函数的运行时间 var timeTaken = function timeTaken(callback) { time('timeTaken'); var r = callback(); timeEnd('timeTaken'); return r; }; // 截取字符串前几位,用于字符串太长时只显示一部分加省略号 var sliceStr = function sliceStr(str, n) { if (str.length >= n) { var _str = _str.slice(0, n) + '...'; } return str; }; // 生成指定长度的字符串 var randomStr = function randomStr(n) { var str = 'abcdefghijklmnopqrstuvwxyz0123456789'; var tmp = ''; for (var i = 0; i < n; i++) { tmp += str.charAt(round(random() * str.length)); } return tmp; }; // 提取数字 var getNum = function getNum(str) { return str.match(/[0-9]+/g); }; exports.addSessionStorage = addSessionStorage; exports.countdown = countdown; exports.delCookie = delCookie; exports.delSessionStorage = delSessionStorage; exports.filterEmoji = filterEmoji; exports.getCookie = getCookie; exports.getHtmlDocName = getHtmlDocName; exports.getNum = getNum; exports.getQueryString = getQueryString; exports.getSessionStorage = getSessionStorage; exports.isAndroid = isAndroid; exports.isCodeLegal = isCodeLegal; exports.isEmailLegal = isEmailLegal; exports.isIOS = isIOS; exports.isIdLegal = isIdLegal; exports.isJsonString = isJsonString; exports.isNil = isNil; exports.isPasswordLegal = isPasswordLegal; exports.isPhoneLegal = isPhoneLegal; exports.isWxBrowser = isWxBrowser; exports.randomStr = randomStr; exports.reloadPage = reloadPage; exports.setCookie = setCookie; exports.sliceStr = sliceStr; exports.timeTaken = timeTaken; Object.defineProperty(exports, '__esModule', { value: true }); }));