js实现input整数位,小数位位数的控制

前言:

公司的需求是输入框整数位只能录到10万位,小数位只能录入小数点后两位(此前已实现),所以结合本次需求,需要对整数位控制进行改造,搜索了js的Number类型的API,没有找到可以直接对整数位进行控制的方法。所以上网查了一番,查到三篇文章,都需要对小数点进行判断。有没有一种方法不需要判断小数点字符?代码也更简洁呢?答案在下面的代码里:

首先定义一个input输入框:

然后定义js脚本:

代码解读:

function checkNum(inputNum){//假设传入参数为:1234567
var v = inputNum.value;//第1步:读取input对象的value,并转换为Number类型赋值给v1
var v1 = Number(v);
if(v1>999999.999){//控制10万位,注意此处小数点为要写到第三位,可以自己动手试试,去掉一个9会有什么现象...
v1= v1/10;//第2步:对v1的大小进行判断,如果超过10万位,则需减位处理,此时为123456.7
var v2 = v1.toFixed(0);//第3步:对除法后的小数位进行四舍五入,此时已进位为123457
if((Number(v2)-Number(v1))>0){//第4步:进位加上了1,所以要减去,才能保证是想要的数字
v= Number(v2)-1;
}else{//假设传入参数为:123456.4,则走进这里
v=Number(v2);
}
$("input[name='ceshihehe']").val(v);//第5步:将处理完的参数传回input框
//没有集成jquery的小伙伴只能用document原生取值咯
}
}
//配合使用正则小数位控制方法
function keup(obj){
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //只能输入两个小数
}

 

网上的三种方法,抽空也参考学习下:

方式1:

https://blog.csdn.net/limingchuan123456789/article/details/11884677

方式2:

https://blog.csdn.net/qizi_zpl/article/details/77774534

方式3:

https://blog.csdn.net/csdn131488/article/details/83507227

 

你可能感兴趣的:(js,jsp,前端)