请高手帮忙看段‘正则表达式’如何修改合适

来源:百度知道 编辑:UC知道 时间:2024/05/21 11:33:18
onkeyup="if(value.match(/^\d{2}$/))value=value.replace(value,parseInt(value/10)) ;value=value.replace(/\.\d*\./g,'.')" onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 && event.keyCode!=45 || value.match(/^\d{2}$/) || /\.\d{2}$/.test(value)) {event.returnValue=false}"

以上是我在网上找到的文本框只能输入小数的正则表达式。我把它改成了只能输入 “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