在今天的开发中,需要一个功能就是,html的表单中的一个分数的input中,用户只能输入小数,不能输入汉字
去网上搜索了一下相关的代码,搜索到一句代码如下:
<input name="score4" onkeyup="value=value.replace(/[^1234567890.]+/g,'')">
这句代码的意思是,只能输入数字或者小数点,如果输入其他的,就会被替换为空,也就是不能输入
但是这句代码还是不能满足我的需求,如果用户输入的是 3.......很多个小数点的话,这个规则也是通过的
自己想要做一个 .56 和 3. 通过的正则,但是没有去了解这里的正则的g代表什么意思,等有时间写一个只能输入小数的正则,后面写好了再过来补充博客。。。。。。
补充
在网上找到一个满足我需求的:
<input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}">