input文本框输入限制数字和小数位数

前端之家收集整理的这篇文章主要介绍了input文本框输入限制数字和小数位数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

曾经为了倒腾一个input的输入限制而东逛西逛,终于在不经意间,自己发现了这个限制的规律。这让我有种如获重生的感觉。

废话没有,贴代码最要紧:

onkeyup="value=value.replace(/[^\d]+\./g,'');
this.value=/^\d+\.?\d{0,1}$/.test(this.value) ? 
this.value : this.value.split('.')[1].length==1?
this.value:this.value=this.value.split('.')[0]+'.'+this.value.split('.')[1].substr(0,1);"

为了方便以后查找方便,我把一行代码分成了四行,这样看起来也没有那么费劲。

首先利用onkeyup事件(松开键盘按键触发的事件),用正则表达式来控制输入的字符。

/[^\d]+\./g
上面的正则表达式表示的是除了数字和.(点)以外,其他的字符都替换为空的
/^\d+\.?\d{0,1}$/
上面的正则表达式表示的是输入小数,控制小数点后一位显示
this.value=/^\d+\.?\d{0,1}$/.test(this.value) ? 
this.value : this.value.split('.')[1].length==1?
this.value:this.value=this.value.split('.')[0]+'.'+this.value.split('.')[1].substr(0,1)

判断小数点后的位数是不是等于1,如果等于1显示,如果不等于1那么久舍弃小数点后第二位的数字

原文链接:https://www.f2er.com/regex/359388.html

猜你在找的正则表达式相关文章