时间格式化处理
function formatTime(time, template = '$0年$1月$2日 $3时$4分$5秒') {
const timeAry = time.match(/\d+/g)
template = template.replace(/\$(\d+)/g, (...[, $1]) => {
const time = timeAry[$1] || '00'
return time
})
return template
}
const time = '2022-1-30 19:44:20'
console.log(formatTime(time)) => '2022年1月30日 19时44分20秒'
console.log(formatTime(time, '$0/$1/$2')) => '2022/1/30'
console.log(formatTime(time, '$0年$1月$2日 $3:$4')) => '2022年1月30日 19:44'
queryURLParams
function queryURLParams(url = '') {
const obj = {}
const reg = /([^?=&#]+)=([^?=&#]+)/g
url.replace(reg, (...[, $1, $2]) => {
obj[$1] = $2
})
url.replace(/#([^?=&#]+)/g, (...[, $1]) => {
obj.hash = $1
})
return obj
}
const url = 'https://huhu.com/?time=2022-01-28&them=new_year#best_wishes'
console.log(queryURLParams(url))
=> {time: '2022-01-28', them: 'new_year', hash: 'best_wishes'}
千分符
function millimetter(number) {
const reg = /\d{1,3}(?=(\d{3})+$)/g
return number.replace(/\d+/, num => num.replace(reg, con => `${con},`))
}
console.log(millimetter('12483.885673')) => '12,483.885673'
console.log(millimetter('389260985212353')) => '389,260,985,212,353'
还可以使用Number.prototype.toLocaleString()方法,但是会自动保留三位小数,并且四舍五入
console.log(12483.885673.toLocaleString()) => '12,483.886'
验证是否是有效数字
const reg = /^[+-]?(\d|([1-9]\d+))(\.\d+)?$/
console.log(reg.test('12.44.33')) => false
console.log(reg.test('022')) => false
console.log(reg.test('-23.45')) => true
console.log(reg.test('+56.00000001')) => true
console.log(reg.test('23')) => true
小数校验
const reg = /^[+-]?\d+(\.\d+)$/
console.log(reg.test(12)) => false
console.log(reg.test(12.33)) => true
console.log(reg.test(-12.33)) => true
中文字符串
const reg = /[\u4E00-\u9FA5]/
let str = 'wahah'
console.log(reg.test(str)) => false
str = '哇哈哈'
console.log(reg.test(str)) => true
str = 'wahah哇哈哈hah'
console.log(reg.test(str)) => true