需求
实现输入框输入数字失焦后转化为金钱格式,即千分位
实现输入框获取焦点后取消格式化转化为常规字符串
金钱格式化
function fmoney(strNum) {
if(strNum.length <= 3){
return strNum;
}
if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(strNum)){
return strNum
}
const a = RegExp.$1
let b=RegExp.$2
const c=RegExp.$3;
const re = new RegExp();
re.compile("(\\d)(\\d{3})(,|$)");
while(re.test(b)){
b = b.replace(re,"$1,$2$3");
}
return `${a}${b}${c}`
}
var money = '12345678.00'
const result = fmoney(money)
console.log(result); // 12,345,678.00
取消格式化
function trimMoney(value){
return value.trim().replace(/[¥,%]/g,"")
}
const trimResult = trimMoney(result)
console.log(trimResult); // 12345678.00