正则匹配只能输入整数或浮点数

本文介绍了一种JavaScript方法,用于过滤非数字字符并规范输入格式,确保用户输入符合整数或浮点数的要求。该方法通过正则表达式实现,能有效移除非数字字符,并控制小数点的数量。

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

// 只能输入整数或浮点数(不完全版本不能排除输入0.00000的状况)
filterNumber(name,e){
//先把非数字的都替换掉,除了数字和.
e.target.value = e.target.value.replace(/[^\d\.]/g,'');
//必须保证第一个为数字而不是.
e.target.value = e.target.value.replace(/^\./g,'');
//保证第一位只能有一个或0个0
e.target.value = e.target.value.replace(/^0{2,}/,'0');
//以0开始的第二位只能为小数点
e.target.value =e.target.value.replace(/^0[\d]/,'0');
//保证只有出现一个.而没有多个.
e.target.value = e.target.value.replace(/\.{2,}/g,'.');
//保证.只出现一次,而不能出现两次以上
e.target.value = e.target.value.replace('.','$#$').replace(/\./g,'').replace('$#$','.');
return e;
}

在知道保留几位小数的情况下可解决。即当位数到达最后一位时如果还输入的0就用''替换掉。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值