请高手帮忙看段‘正则表达式’如何修改合适
来源:百度知道 编辑:UC知道 时间:2024/05/21 11:33:18
以上是我在网上找到的文本框只能输入小数的正则表达式。我把它改成了只能输入 “X.XX” 这格式的,想用来限制用户输入的身高值。
但是还有个问题,这第一位数 用户可以输入 0 或者 9。
我要验证的是身高。但我们正常人的身高一般都是 1 米到 2米 请问有办法将以上正则修改成第一位数 只能输入 1 或 2 吗?
例如:1.55 或2.00 这样子的格式。
就是说,我现在这个可以输入9.55 这样子的小数,但我想让他现在输入的首位只能是1或2,最好输入的值不能超过2.30
请问应该如何来实现呢?请各位高手帮帮忙,谢谢。
不用给我判断身高的正则表达式,我自己会写。
只是不知道以上和JS结合的这正则应该如何修改而已。
帮帮忙,谢谢了
只能输入1.00到2.39
<input type="text" onKeyPress='if((!/^2\.[0-3]\d|2(?:\.[0-3]{0,1})?|1(?:\.\d{0,2})?$/.test(value)) && this.value!="")event.returnValue=false;' onkeyup='this.value=this.value.replace(/.*?(2\.[0-3]\d|2(?:\.[0-3]{0,1})?|1(?:\.\d{0,2})?)?.*/,"$1");'>
非要用正则表达式吗?正则并不一定是最好的解决办法
(已经在IE中调试成功)
一、“但我想让他现在输入的首位只能是1或2”,代码如下:
if(value.match(/^[^12]{1}.*$/))value='';
二、“最好输入的值不能超过2.30”,代码如下:(未使用正则判断)
if(parseFloat(value)>2.30)value='';
三、将以上2个功能可以综合如下:(未使用正则判断)
if(parseFloat(value)<1.00||parseFloat(value)>2.30)value='';
第一种情况输错第一位就删除一位,等于清空了所以使用value=''
第二种情况比如要录入2.23,输错成2.32,如果用replace也不好改,改成2.3不行,只能替换成2.这样。 程序已经很繁琐了,所以干脆也用用value=''。
试试这个。
<input type="text" onkeydown="if(value==''){if(!(event.keyCode==49||event.keyCode