javascript - 带有 4 位小数的货币格式正则表达式,如果没有则不显示美分
问题描述
我在这里使用这个正则表达式, 但有 4 个小数,所以
val.toFixed(4).replace(/\d(?=(\d{3})+\.)/g, '$&,');
但想进行以下更改。
如果小数为 0,例如 9.0000,则显示 9
如果它只有 1 或 2 个小数位,则显示 2 个小数位
9.5000,显示 9.50
否则显示 4 位小数
有没有办法做到这一点?谢谢
解决方案
你可以这样做:
编辑用户评论评论:
var val= "9.5493";
if (val.indexOf(".0000")>=0) {
var val = val.replace(".0000", "");
}
if (val.indexOf(".00")>=0) {
var val = val.replace(".00", "");
}
var res = val.split(".");
var1=res[0];
var2=res[1];
if (var2 && var2.indexOf("000")>=0) {
var res = var2.replace("000", "0");
var val = var1+"."+res;
}else{
var val = val;
};
console.log(val);
var val= "9.0000";
if (val.indexOf(".0000")>=0) {
var val = val.replace(".0000", "");
}
if (val.indexOf(".00")>=0) {
var val = val.replace(".00", "");
}
var res = val.split(".");
var1=res[0];
var2=res[1];
if (var2 && var2.indexOf("000")>=0) {
var res = var2.replace("000", "0");
var val = var1+"."+res;
}else{
var val = val;
};
console.log(val);
var val= "90000";
if (val.indexOf(".0000")>=0) {
var val = val.replace(".0000", "");
}
if (val.indexOf(".00")>=0) {
var val = val.replace(".00", "");
}
var res = val.split(".");
var1=res[0];
var2=res[1];
if (var2 && var2.indexOf("000")>=0) {
var res = var2.replace("000", "0");
var val = var1+"."+res;
}else{
var val = val;
};
console.log(val);
var val= "9.5000";
if (val.indexOf(".0000")>=0) {
var val = val.replace(".0000", "");
}
if (val.indexOf(".00")>=0) {
var val = val.replace(".00", "");
}
var res = val.split(".");
var1=res[0];
var2=res[1];
if (var2 && var2.indexOf("000")>=0) {
var res = var2.replace("000", "0");
var val = var1+"."+res;
}else{
var val = val;
};
console.log(val);
推荐阅读
- flutter - 在flutter中调用api后更新ModalBottomSheet
- bash - 使用 xargs 并行的多个 rsync - 最有效的目录结构通过
- python - 如何将更长的列表附加到数据框
- css - vue-simple-calendar“类”项目属性不起作用
- php - 为什么我们得到一个未定义索引的错误并且我们正在丢失我们的数据?
- c++ - “const Allocator& alloc = Allocator()”是什么意思?
- javascript - 如何在没有 useRef 的情况下定义我们不希望作为状态的变量
- python - 在一个特殊的序列中找到 f(n)
- javascript - 使用完全优化时,如何访问 Scala.js 中返回的元组的字段?
- node.js - 创建读取流(utf-8)而不破坏单词