应用场景:后端可能返回这样的日期(20220618)或者金额(1000)需要转换处理。
使用正则匹配的函数replace
的回调来递归对映射进行批量替换,比如:
日期或者金额小写转大写
let dateStr = '20220618'
function date2ch(v) {
if (v && v.length !== 8 ) return
let ch = ['零','一','二','三','四','五','六','七','八','九','十']
return dateStr.replace(/\d/g, v => ch[v])
}
date2ch(dateStr) // 二零二二零六一八
格式化日期
let dateStr = '20220618'
function dateFormat(v, separator='-') {
if (v && v.length !== 8 ) return
return dateStr.replace(/^(\d{4})(\d{2})(\d{2})$/, `$1${separator}$2${separator}$3`)
}
dateFormat(dateStr)
dateFormat(dateStr, '/')
// 2022-06-18
// 2022/06/18
简洁顺滑~
批量取值
var ary=["一","二","三","四","五","六"]
res = "12".replace(/\d/g,function(v){
return ary[v]
})
// res = '二三’