加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 04:27:26 所属栏目:百科 来源:网络整理
导读:曾经为了倒腾一个input的输入限制而东逛西逛,终于在不经意间,自己发现了这个限制的规律。这让我有种如获重生的感觉。 废话没有,贴代码最要紧: onkeyup="value=value.replace(/[^d]+./g,'');this.value=/^d+.?d{0,1}$/.test(this.value) ? this.valu

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读