目录
1、判断是否为数值函数 isNumber
2、计算字符串长度 calculateStrLengh
3、转换日期格式 changeDateFormat
4、节流函数 throttle
5、防抖函数 debounce
6、获取地址栏参数 GetUrlParam
7、判断两个 Oject 是否相等 isEqualObject
8、判断 Object 是否为空 isEmptyObject
9、判断字符串是否存在 isExist
10、获取小程序链接的地址栏参数 GetWxMiniProgramUrlParam
1、判断是否为数值函数 isNumber
function isNumber(val){if(val==""){return false;}if(val.length>1){if(val.substr(val.length-1, val.length)=="."){var len = val.split(".").length-1;if(len>1){return false;}val = val.substr(0, val.length-1);}}var regPos = /^\d+(\.\d+)?$/; var regNeg = /^((([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; if(regPos.test(val) || regNeg.test(val)) {return true;}return false;
}
2、计算字符串长度 calculateStrLengh
//计算字符长度(一个汉字2个字符)
function calculateStrLengh(str){var len=0;if(!isExist(str)){return 0;}for (var i=0; i= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {len++;}else {len+=2;}}return len;
}
3、转换日期格式 changeDateFormat
//转换日期格式(时间戳转换为datetime格式)
function changeDateFormat(cellval, hms) {var dateVal = cellval + "";if (cellval != null) {var date = new Date(parseInt(dateVal.replace("/Date(", "").replace(")/", ""), 10));var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();if(hms){return date.getFullYear() + "-" + month + "-" + currentDate + " " + hours + ":" + minutes + ":" + seconds;}else{return date.getFullYear() + "-" + month + "-" + currentDate;}}
}
4、节流函数 throttle
/** * 节流 */
function throttle(fn, wait = 500, isImmediate = false) { let flag = true; if (isImmediate) { return function() { if (flag) { fn.apply(this, arguments); flag = false; setTimeout(() => { flag = true }, wait) } } } return function() { if (flag == true) { flag = false setTimeout(() => { fn.apply(this, arguments) flag = true }, wait) } }
}
5、防抖函数 debounce
//防抖
function debounce(fn, wait, isImmediate) { let timerId = null; let flag = true; if (isImmediate) { return function() { clearTimeout(timerId); if (flag) { this[fn]() ; flag = false } timerId = setTimeout(() => { flag = true }, wait) } } return function() { clearTimeout(timerId); timerId = setTimeout(() => { this[fn]() }, wait) }
}
6、获取地址栏参数 GetUrlParam
//js获取地址栏参数 name为参数名
function GetUrlParam (name) {var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");var r = window.location.search.substr(1).match(reg);if (r != null) {return unescape(r[2]);}return null;
}
7、判断两个 Oject 是否相等 isEqualObject
// 判断两个object是否相等
function isEqualObject (obj1, obj2) {var o1 = obj1 instanceof Object;var o2 = obj2 instanceof Object;if (!o1 || !o2) { /* 判断不是对象 */return obj1 === obj2;}if (Object.keys(obj1).length !== Object.keys(obj2).length) {return false;//Object.keys() 返回一个由对象的自身可枚举属性(key值)组成的数组,例如:数组返回下表:let arr = ["a", "b", "c"];console.log(Object.keys(arr))->0,1,2;}for (var attr in obj1) {var t1 = obj1[attr] instanceof Object;var t2 = obj2[attr] instanceof Object;if (t1 && t2) {return diff(obj1[attr], obj2[attr]);} else if (obj1[attr] !== obj2[attr]) {return false;}}return true;
}
8、判断 Object 是否为空 isEmptyObject
//判断object为空
function isEmptyObject (e) {for (var t in e)return !1;return !0
}
9、判断字符串是否存在 isExist
function isExist (str) {if (str !== null && str !== "undefined" && str !== "" && typeof str != "undefined" && !(typeof (str) == "string" &&str.split(" ").join("").length == 0)) {return true;} else {return false;}
}
10、获取小程序链接的地址栏参数 GetWxMiniProgramUrlParam
// 判断是否为IE8
var DEFAULT_VERSION = 8.0;
var ua = navigator.userAgent.toLowerCase();
var isIE = ua.indexOf("msie") > -1;
var safariVersion;
if (isIE) {safariVersion = ua.match(/msie ([\d.]+)/)[1];
}