// 金额千分位格式化
function momenyFormat(num) {
// 数字转字符串
let result = `${num}`;
// 校验输入值是否为数字
const regNumber = /^\d+$|(\d+\.\d+)/g;
// 校验小数点及右侧部分
const regRight = /(?<=\d)(\.\d+)/g;
// 校验小数点左侧的部分
const regLeft = /(\d)(?=(\d{3})+$)/g;
// 判断是否是数字
if (regNumber.test(result)) {
// 判断是否包含小数点
if (/\./g.test(result)) {
// 提取小数点和右侧部分
const right = regRight.exec(result)[0];
// 替换小数点和右侧部分为空白,得到小数点左侧部分
// 对左侧部分进行千分位处理
const left = result.replace(regRight, "").replace(regLeft, "$1,");
// 左右两部分拼接
result = `${left}${right}`;
} else {
// 不包含小数点,直接千分位处理
result = result.replace(regLeft, "$1,");
}
} else {
console.warn(`invalid number ${num}`);
}
return result;
}
console.log(momenyFormat()); // warn + undefined
console.log(momenyFormat(1231)); // '1,231'
console.log(momenyFormat("123213.23211w")); // warn + '123213.23211w'
console.log(momenyFormat(1232137.23211)); // 1,232,137.23211
console.log(momenyFormat("32s.324")); // warn + "32s.324"
console.log(momenyFormat("122213,343")); // warn + "122213,343"
使用正则实现数字千分位处理
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1.js 数字转千分位: 参考: https://blog.csdn.net/xuyunfei_2012/arti...
- 前沿 这里是全局的设置,方便以后使用,做个笔记。 具体的设置全局组件和全局js请移步关于vue全局引用公共的js和...
- 实现效果: 实现方式: 附代码:(省的一个个敲) formatNumber=(value)=>{ value+='...