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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hsl_1990_08_15/article/details/51104916

曾经为了倒腾一个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那么久舍弃小数点后第二位的数字


猜你喜欢

转载自blog.csdn.net/hsl_1990_08_15/article/details/51104916