获取当前日期或格式化当前日期方法封装yyyy-MM-dd
将当前时间、yyyy/MM/dd、yyyy.MM.dd、yyyy-MM-dd作为间隔符的日期格式统一转换为yyyy-MM-dd
1、判断是否有值传入,没有值传入则获取当前时间
2、有值传入判断是否为日期格式 (这里没有完全判断日和月是否正确,只做了初步判断)
3、转换日期格式
function dateFormat(oldDate){
const re = /^(\d{4})(\/|\.|-)(\d{1,2})(\/|\.|-)(\d{1,2})$/
if(!oldDate){
oldDate = new Date().toLocaleDateString()
}else if(!re.test(oldDate)){
console.log('日期格式有误')
return
}
const date = new Date(oldDate)
let year = date.getFullYear().toString()
let month = (date.getMonth() + 1).toString()
let day = date.getDate().toString()
month = month.padStart(2, '0')
day = day.padStart(2, '0')
const dataFormat = `${year}-${month}-${day}`
return dataFormat
}
输入内容限制
export function limitInput(input){
if(!input){
return ''
}
const reg = new RegExp("[^0-9a-z-A-Z]") // 只能输入数字和英文
let reflowSpecial = ''
for(let i = 0; i < input.length; i++){
reflowSpecial = reflowSpecial + input.substr(i, 1).replace(reg, '')
}
return reflowSpecial
}
数据深拷贝
export function deepClone(target) {
// 目标值为 非引用类型,直接返回目标值
if (typeof target !== 'object') {
return target
}
const temp = Array.isArray(target) ? [] : {}
for (const item in target) {
if (target[item] instanceof Date) {
const time = new Date(target[item])
temp[item] = time
} else {
temp[item] = deepClone(target[item])
}
}
return temp
}