格式化手机号
let mobile = '13811111111'
let mobileReg = /(?=(\d{4})+$)/g
console.log(mobile.replace(mobileReg, '-')) // 138-1111-1111
千分位格式化
const formatMoney = (money) => {
return money.replace(new RegExp(`(?!^)(?=(\\d{3})+${money.includes('.') ? '\\.' : '$'})`, 'g'), ',')
}
formatMoney('123456789') // '123,456,789'
最多保留两位小数
/^(([1-9]{1}\d{0,9})|(0{1}))(\.\d{1,2})?$/
/^(([1-9]{1}\d*)|(0{1}))(\.|(\.\d{0,2}))?$/
手机号脱敏
phone.toString().replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2') // 136****2678
检测数据类型
function getType(obj, type){
let finalType = Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]$/, '$1');
return type ? finalType.toUpperCase()===type.toUpperCase() : finalType
}
console.log(getType('a')) // String
console.log(getType({a:1})) // Object
console.log(getType([1,2,3])) // Array
console.log(getType(undefined)) // Undefined
console.log(getType(null)) // Null
注意:上述方法对于检测NaN的数据类型不准确,需要额外判断