vue項目中可以直接使用 1、常用工具類untils.js中 2、本地存儲工具類storageUntils.js 項目中常用到的一些工具方法,持續更新中。。。 ...
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 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(func, wait) {
let timeout = null
wait = wait || 1000
return function() {
let context = this
let args = arguments
if (timeout) clearTimeout(timeout)
let callNow = !timeout
timeout = setTimeout(() => {
timeout = null
}, wait)
if (callNow) func.apply(context, args)
}
}
2、本地存儲工具類storageUntils.js
/**
* 設置本地localStorage
* @name {String} 數據對象的KEY
* @data {all} 對應key的數據
*/
export function setStorage(name, data) {
let storage = window.localStorage;
storage.setItem(name, JSON.stringify(data));
}
/**
* 拿到本地localStorage
* @name {String} 數據對象的KEY
*/
export function getStorage(name) {
let storage = window.localStorage;
let data = JSON.parse(storage.getItem(name));
return data;
}
/**
* 設置本地sessionStorage
* @name {String} 數據對象的KEY
* @data {all} 對應key的數據
*/
export function setSessionStorage(name, data) {
let storage = window.sessionStorage;
storage.setItem(name, JSON.stringify(data));
}
/**
* 拿到本地sessionStorage
* @name {String} 數據對象的KEY
*/
export function getSessionStorage(name) {
let storage = window.sessionStorage;
let data = JSON.parse(storage.getItem(name));
return data;
}
項目中常用到的一些工具方法,持續更新中。。。