急,求个js正则:只能输入 0 到 1之间的数。不含0和1 必须以0.开头,小数位数二位就可以了下面这个好像不行,不能输入0.
<input type="text" onkeyup="value=value.replace(/[^[0-1]$|^0\.[0-9]{1,2}$]/g,'')" >

解决方案 »

  1.   


    var str = '0.99';
    var re = /^0\.(?!0{2})\d{2}$/;
    alert(re.test(str))
    0.00 不符合
      

  2.   


    var str = '0.99';
    var re = /^0\.[1-9]{1,2}$/;
    alert(re.test(str))
      

  3.   

    大师,我放在onkeyup里面好像不对啊。能直接在我上面那个上改么?也就是写在 onkeyup=里面,
      

  4.   


    <input type="text" onblur="this.value=this.value.replace(/^(?!0\.(?!0{2})\d{2}).+$/,'')" >失焦的时候 触发,如果用onkeyup,输一个就被替换一个了。
      

  5.   

    如果能用 onkeyup做是最好的了,
      

  6.   


    <input type="text" onblur="this.value=this.value.replace(/^(?!0\.(?!0{2})\d{2}$).+$/,'')" >
    只要输入的值 不满足 0.×× 失焦就会清空
      

  7.   

    哦,你这是必须要有二位小数。我的意思是最多二位小数,可以是1位。怎么弄?
    另外,可以用onkeyup做吗?那样体验会更好一点。
      

  8.   

    <input type="text" onkeyup="value=value.replace(/^0\.(?!00)\d{1,2}$/,'')" >
    不是很明白你的意思
    你的意思是当文本框里满足0.01到0.99间的数时就清空吗?
    而且onkeyup是每按一个键就执行一次  所以如果你要求小数点后可以是一个数字的话,还没等你输第二个数字时就清空了,0.0也满足\.(?!0{2})