格式化數字,小數點補全,金額輸入框校驗(小數點、補位等)
阿新 • • 發佈:2018-11-09
在專案中,經常需要格式化數字,比如金額。下面這個方法實現了小數點後補全
格式化數字,小數點補全
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('$#$', '.')
})
}
}
},