目录
1、判断是否为数值函数 isNumber
2、计算字符串长度 calculateStrLengh
3、转换日期格式 changeDateFormat
4、节流函数 throttle
5、防抖函数 debounce
6、获取地址栏参数 GetUrlParam
7、判断两个 Oject 是否相等 isEqualObject
8、判断 Object 是否为空 isEmptyObject
9、判断字符串是否存在 isExist
10、获取小程序链接的地址栏参数 GetWxMiniProgramUrlParam
1、判断是否为数值函数 isNumber
代码语言:javascript复制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
代码语言:javascript复制//计算字符长度(一个汉字2个字符)
function calculateStrLengh(str){
var len=0;
if(!isExist(str)){
return 0;
}
for (var i=0; i<str.length; i ) {
var c = str.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
len ;
}
else {
len =2;
}
}
return len;
}
3、转换日期格式 changeDateFormat
代码语言:javascript复制//转换日期格式(时间戳转换为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
代码语言:javascript复制/**
* 节流
*/
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
代码语言:javascript复制//防抖
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
代码语言:javascript复制//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
代码语言:javascript复制// 判断两个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
代码语言:javascript复制//判断object为空
function isEmptyObject (e) {
for (var t in e)
return !1;
return !0
}
9、判断字符串是否存在 isExist
代码语言:javascript复制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
代码语言:javascript复制// 判断是否为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];
}