云驹博客

路漫漫其修远兮,吾将上下而求索。

0%

js去除字符串保留两位小数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function formatDouble(str) {
let num: any = str.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符
num = num.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
num = num.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
num = num.replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3"); //只能输入两个小数
if (num.indexOf(".") === 0) {
// .为第一位时替换为0.
num = num.replace(".", "0.");
}
if (num.indexOf(".") < 0 && num != "") {
//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
num = parseFloat(num);
}
return num;
}