在项目中,经常需要格式化数字,比如金额。下面这个方法实现了小数点后补全
格式化数字,小数点补全
function formatemoney(s, n) {
/* s:要格式化的数字
* n:保留几位小数
* */
n = n > 0 && n <= 20 ? n : 2;
s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
var l = s.split(".")[0].split("").reverse(),
r = s.split(".")[1],
t = "";
for (var i = 0; i < l.length; i++) {
t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
}
return t.split("").reverse().join("") + "." + r;
}
输入框校验,实现首位不能是小数点,只能输入一个小数点,小数点后最多只能输入2位等规则的校验
输入框(主要用于金额)规则校验,限制用户输入
下面是在微信小程序中使用方法,其中maxlength是闲着输入框最大长度
bindamountInput: function (e) {
if (e.detail.value.charAt(0) == '.') {
e.detail.value = '0.'
}
let v = e.detail.value;
var regu = /^[0-9]+\.?[0-9]*$/;
if (regu.test(v)) {
if (v.indexOf('.') > -1) {
if (v.split('.')[1].length == 2) {
this.setData({
maxLength: v.length
})
} else {
this.setData({
maxLength: 6
})
}
}
}
this.setData({
amount: e.detail.value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
})
}
}
},