备注说明: 创作都是根据自己日积月累创建的,是作者的劳动成果,不经允许禁止转载,一旦发现将承担法律责任。
- 创建一个Utils.js文件,复制下面代码;
- 在需要的地方引入或者全局引入;
话不多说,直接上代码:
/**
* create By Jane
* 通用的数据处理和验证类
*/
export default class Utils {
/**
* 检查是否为空数组 空数组返回 true
* @param {Array} arr 数组
* @return Boolean
*/
static isEmptyArr(arr) {
if (!Array.isArray(arr)) throw new Error('isEmptyArr 参数不是一个数组');
if (!arr.length) return true;
return false;
}
/**
* 是否是空 不为空false 为空true
* @param {any} opt 验证参数
* @return Boolean
*/
static isNull(opt) {
if (opt == '' || opt == null || opt == undefined) return true;
return false;
}
/**
* 校验密码
* @param phone
* @returns {boolean}
*/
static checkPassword(phone) {
let reg = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/;
return reg.test(phone);
}
/**
* 校验手机号格式
* @param phone
* @returns {boolean}
*/
static checkPhone(phone) {
let reg = /^1[3456789]\d{9}$/;
return reg.test(phone);
}
/**
* 校验邮箱格式
* @param email
* @returns {boolean}
*/
static checkEmail(email) {
let reg = /^\w+@[a-z0-9]+\.[a-z]{2,4}$/;
return reg.test(email);
}
/**
* 校验身份证号格式
* @param email
* @returns {boolean}
*/
static checkCardNo(email) {
let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return reg.test(email);
}
/**
* 校验值长度 不少于6位数
* @param email
* @returns {boolean}
*/
static checkValueLength(password, min = 6, max = 0) {
let regExp = new RegExp(`^[\\s\\S]{${min || ''},${max || ''}}$`);
return regExp.test(password);
}
/**
* 电话号码加密
*/
static phoneEncryption(phone) {
return phone.replace(/^(\d{3})\d{4}(\d+)/, '$1****$2')
}
/**表单验证重量、金额输入
* @param {Object} value
*/
static checkMoney(value) {
let reg = /\d{1,}\.{0,1}\d{0,2}/;
if (value.replace(reg, '')) {
value = (value.match(reg) == null ? '' : value.match(reg));
}
if((value >= 1) && (`${value}`.indexOf(0) == 0)){
value = parseFloat(value);
}
if(`${value}`.indexOf('00') == 0){
value = 0;
}
return value;
}
/**验证输入的钱
* @param {Object} value
*/
static isMoney(value) {
var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
if (reg.test(value)) {
return true;
} else {
return false;
};
}
// 验证是否是数字
static isNumber(value) {
var reg = /^[0-9]*[1-9][0-9]*$/;
if (reg.test(value)) {
return true;
} else {
return false;
};
}
/**
* 处理数据 :可把制定相同的key值得对象存储到下级得children中
*/
static mergeData(list = [], key, name = 'children') {
const data = [];
list.forEach((item, index) => {
const parent = data.find((i) => i[key] === item[key]);
if (parent) {
parent[name].push({
...item
});
} else {
let obj = {
...item
};
if (!obj[name]) {
obj[name] = [];
}
obj[name].push({
...item
});
data.push(obj);
}
});
return data;
}
//生成唯一ID
static getID() {
const now = new Date()
const year = now.getFullYear();
let month = now.getMonth() + 1;
let day = now.getDate();
let hour = now.getHours();
let minutes = now.getMinutes();
let seconds = now.getSeconds();
month = month < 10 ? '0' + month : month;
day = day < 10 ? '0' + day : day;
hour = hour < 10 ? '0' + hour : hour;
minutes = minutes < 10 ? '0' + minutes : minutes;
seconds = seconds < 10 ? '0' + seconds : seconds;
const yyyyMMddHHmmss = `${year}${month}${day}${hour}${minutes}${seconds}`;
const rand = Math.random().toString(10).substr(2, 10);
return `${yyyyMMddHHmmss}${rand}`;
};
//生成编码唯一
static getAutoWasteID(name = '9') {
const rand = Math.random().toString(8).substr(2, 8);
return name + new Date().Format('yyMMdd') + rand;
};
static shakeFun(timer,time = 1000,callback) {
clearTimeout(timer);
timer = setTimeout(() => {
callback();
}, time);
};
}