请高手帮忙看段‘正则表达式’如何修改合适
发布网友
发布时间:2022-04-23 14:47
我来回答
共5个回答
热心网友
时间:2022-04-23 16:16
(已经在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=''。
热心网友
时间:2022-04-23 17:34
只能输入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");'>
非要用正则表达式吗?正则并不一定是最好的解决办法
热心网友
时间:2022-04-23 19:09
[12]即1和2中选取一个
加上“.”;再加上2个单子字符
也就是出现的范围是 1.00~2.99
[12].\d{2}这个的格式就只能是x.xx
更考虑全点是这样 这个可以是x.x 也可以x.xx
[12].\d\d?
要不超过2.30么就这样[12].[012]\d? 那么他的范围是1.00~2.29
所以最终答案是[12].[012]\d? 或者 [12].[012]\d
热心网友
时间:2022-04-23 21:00
试试这个。
<input type="text" onkeydown="if(value==''){if(!(event.keyCode==49||event.keyCode==50))
{event.returnValue=false}}else if(value=='2\.'){if(!(event.keyCode==49||event.keyCode==50)){event.returnValue=false}}else{if(!((event.keyCode>47&&event.keyCode<58)||(event.keyCode==8))){event.returnValue=false}}" onkeyup="if(value.substr(1,1)!='.'&&value!=''){value=value.replace(value,value.substr(0,1)+'.')};" maxlength="4" />
热心网友
时间:2022-04-23 23:08
我问一下我同学!你等一下~