vue 專案中可以直接使用
1、常用工具類 untils.js 中
/*
* 驗證手機號是否合格
* true--說明合格
*/
export function isPhone(phoneStr) {
let myreg = /^[1][3,4,5,7,8,9][0-9]{9}$/;
if (!myreg.test(phoneStr)) {
return false;
} else {
return true;
}
}
/*
* 驗證身份證號是否合格
* true--說明合格
*/
export function isIdCard(idCardStr) {
let idcardReg = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
if (idcardReg.test(idCardStr)) {
return true;
} else {
return false;
}
}
/**
* 驗證車牌號是否合格
* true--說明合格
*/
export function isVehicleNumber(vehicleNumber) {
let xreg = /^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
let creg = /^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9掛學警港澳]{1}$/;
if (vehicleNumber.length == 7) {
return creg.test(vehicleNumber);
} else if (vehicleNumber.length == 8) {
return xreg.test(vehicleNumber);
} else {
return false;
}
}
/*
* 驗證字串是否為空(也不能為純空格)
* true--說明為空, false--說明不為空
*/
export function isEmptyString(string) {
if (
string == undefined ||
typeof string == 'undefined' ||
!string ||
string == null ||
string == '' ||
/^\s+$/gi.test(string)
) {
return true;
} else {
return false;
}
}
/*
* 生日轉為年齡(精確到月份)
*/
export function birsdayToAge(birsday) {
let aDate = new Date();
let thisYear = aDate.getFullYear();
let bDate = new Date(birsday);
let brith = bDate.getFullYear();
let age = thisYear - brith;
if (aDate.getMonth() == bDate.getMonth()) {
if (aDate.getDate() < bDate.getDate()) {
age = age - 1;
}
} else {
if (aDate.getMonth() < bDate.getMonth()) {
age = age - 1;
}
}
return age;
}
/*
* 驗證是否為數字
*/
export function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
/*
* 是否為陣列
*/
export function isArray(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
}
/*
* 是否空陣列
*/
export function isArrayEmpty(val) {
if (val && val instanceof Array && val.length > 0) {
return false;
} else {
return true;
}
}
/*
* 獲取url引數字串
* 沒有回傳null
*/
export function getQueryString(name) {
let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
let r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
}
/*
* 遞回深拷貝
*/
export function deepCopy(obj) {
let result = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
if (typeof obj[key] === 'object' && obj[key] !== null) {
result[key] = deepCopy(obj[key]);
} else {
result[key] = obj[key];
}
}
}
return result;
}
/**
* 去除引數空資料(用于向后臺傳遞引數的時候)
* @param {Object} obj [引數物件]
*/
export function filterEmptyData(obj) {
for (let prop in obj) {
obj[prop] === '' ? delete obj[prop] : obj[prop];
}
return obj;
}
/**
* @desc 函式防抖,用于將多次執行變為最后一次執行
* @param {function} func - 需要使用函式防抖的被執行的函式,必傳
* @param {Number} wait - 多少毫秒之內觸發,只執行第一次,默認1000ms,可以不傳
*/
export function debounce(fn, delay) {
delay = delay || 1000; //默認1s后執行
let timer = null;
return function () {
let context = this;
let arg = arguments;
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
fn.apply(context, arg);
}, delay);
};
}
/**
* 節流函式, 用于將多次執行變為每隔一段時間執行
* @param fn 事件觸發的操作
* @param delay 間隔多少毫秒需要觸發一次事件
*/
export function throttle2(fn, delay) {
let timer = null;
return function () {
let context = this;
let args = arguments;
if (!timer) {
timer = setTimeout(function () {
fn.apply(context, args);
clearTimeout(timer);
}, delay);
}
};
}
2、本地存盤工具類 storageUntils.js
- 結合 vuex 使用
class Storage {
constructor(keyValue) {
this.key = keyValue;
}
get() {
let value;
try {
return (value = https://www.cnblogs.com/sgs123/p/window.localStorage.getItem(this.key)) &&
typeof value !=='undefined'
? JSON.parse(value)
: undefined;
} catch (err) {}
return undefined;
}
set(data) {
window.localStorage.setItem(this.key, JSON.stringify(data));
}
del() {
window.localStorage.removeItem(this.key);
}
}
//簡化了key值的輸入 方便統一管理
export const userInfo = new Storage('userInfo'); //登錄用戶資訊
export const token = new Storage('token'); //登錄token
以上就是專案中常用到的一些工具方法
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/155915.html
標籤:JavaScript
上一篇:揭秘webpack plugin
下一篇:JS 百度地圖-右鍵選單
