//输入验证几位整数inputValue传入的值,保留整数位的位数numbers
function checkNumber5 (inputValue, numbers){ if (inputValue.indexOf(".") == -1) { if (inputValue.length > numbers) { inputValue = inputValue.substr(0, numbers); } } else { var arr = inputValue.split("."); var length = arr[0].length; if (length > numbers) { var totalInt = arr[0]; var totalDecimal = 0; if (arr[1].length > 0) { totalDecimal = arr[1] * Math.pow(10, arr[1].length) / Math.pow(10, arr[1].length) / Math.pow(10, arr[1].length); } var bigDecimal = parseInt(totalInt.substr(0, numbers)) + totalDecimal; inputValue = bigDecimal; } } return inputValue; }
网上找到金额检验
function onlyNumber (obj) {
//禁止录入整数部分两位以上,但首位为0
obj.value = obj.value.replace(/^([1-9]\d*(\.[\d]{0,2})?|0(\.[\d]{0,2})?)[\d.]*/g,
'$1');
//先把非数字的都替换掉,除了数字和.
obj.value = obj.value.replace(/[^\d\.]/g,
'');
//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,
'0.');
//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,
'.');
//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(
'.',
'$#$').replace(/\./g,
'').replace(
'$#$',
'.');
//只能输入两个小数
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,
'$1$2.$3');
return obj.value;
}
使用场景:
监听输入input框的值变化
$(input).on("click", function(){
var inputValue =
this.onlyNumber(e.detail);
inputValue =
this.checkNumber5(inputValue,
5);
this.setData({
inputValue: inputValue
})
})
添加失去焦点保留两位小数函数
changeTwoDecimal_f:
function (x) {
var f_x = parseFloat(x);
if(isNaN(f_x)){
return
0;
}
var f_x = Math.round(x *
100) /
100;
var s_x = f_x.toString();
var pos_decimal = s_x.indexOf(
'.');
if(pos_decimal <
0){
pos_decimal = s_x.length;
s_x +=
'.';
}
while (s_x.length <= pos_decimal +
2) {
s_x +=
'0';
}
return s_x;
}
欢迎大家指点,如有不足的地方