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

本文介绍了一种使用JavaScript控制输入框中数值的整数部分不超过10万位,且小数部分不超过两位的方法。通过定义checkNum和keup函数,结合toFixed和replace方法,实现了对数值的有效限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

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

首先定义一个input输入框:

<input type="number" onkeyup="keup(this)" onchange="" name="ceshihehe" oninput="checkNum(this)" style="width: 160px;">

然后定义js脚本:

<script>

function checkNum(inputNum){
    var v = inputNum.value;
    var v1 = Number(v);
    if(v1>999999.999){
      v1= v1/10;
      var  v2 = v1.toFixed(0);
      if((Number(v2)-Number(v1))>0){
          v= Number(v2)-1;
      }else{
          v=Number(v2);
      }
        $("input[name='ceshihehe']").val(v);
    }
}

function keup(obj){
    obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //只能输入两个小数
}

</script>代码解读:

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.youkuaiyun.com/limingchuan123456789/article/details/11884677

方式2:

https://blog.youkuaiyun.com/qizi_zpl/article/details/77774534

方式3:

https://blog.youkuaiyun.com/csdn131488/article/details/83507227

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值