kurisu
Version:
273 lines (213 loc) • 8.51 kB
JavaScript
(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 });
}));