<input name=test onkeyup="checkvalue(this.value);">
<script>
var str;
function checkvalue(mytest)
{
if(/^(-?\d+)(\.{1}|\.\d+)*$/.test(mytest))str=mytest;
document.all.test.value=str;
}
</script>
测试过了。

解决方案 »

  1.   

    刚才的有点问题,这个更好点。
    <input name=test onkeyup="checkvalue(this.value);" onblur="">
    <script>
    var str;
    function checkvalue(mytest)
    {
    if(/^(-?\d+)(\.|\.\d+)?$/.test(mytest))str=mytest;
    document.all.test.value=str;
    }
    </script>
      

  2.   


    <script>
    function check(str)
    {if(!/^[+|-|\d{1}]\d+[\.|\d{1}]\d+$/.test(str))alert('你输入的可能不是数字');}
    </script>
    <input onchange="check(this.value)" >
      

  3.   

    只能输入数字的: 
    <input onkeyup="value=value.replace(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d.]/g,''))" ID="Text2" NAME="Text2">只能输入数字和小数点:
    <input onkeyup="value=value.replace(/[^\d.]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d.]/g,''))" ID="Text2" NAME="Text2">
      

  4.   

    谢谢上面的兄弟帮忙,上面这些都不能满足需求。下面的代码,有两个问题:1。负号可以输入多次,而且不能限制只能在左边
    2。如果小数点先输入,负号不能输入能不能在这个代码的基础上进行修改达到需求?<INPUT TYPE="text" class="inputborder1" name="c_11"  onkeypress="checkIsFloat(this.value);"  style="width:99%;text-align:right;font-weight:bold;ime-mode:disabled" ><SCRIPT LANGUAGE="JavaScript">
    <!--
    function checkIsFloat(svalue){
        var nc=event.keyCode;
        if((nc>=48) && (nc<=57) ){
        }else if((nc==46)||(nc==45)){
          var s=svalue;
          for(var i=0;i<s.length;i++){
            if(s.charAt(i)=='.'){
                  event.keyCode=0; return;
            }
          }
        }else{
          event.keyCode=0;return;
        }
      }//-->
    </SCRIPT>
      

  5.   

    下面是两种判断方法,一个用了正则,另一个用常规方法<script languang="javascript">
    function checkkey(v){
      var kc=event.keyCode;
      if (kc ==43 ||kc ==45 ||kc ==46 ||kc ==13 || (kc >47 && kc <58)){
          //只允许输入“+”“-”“.”“回车”“0-9”等字符。      if(kc==46&&v.indexOf('.') >-1)event.returnValue = false;
              //不允许输入多个小数点      if((kc==43||kc==45)&&(v.indexOf('+')>-1||v.indexOf('-')>-1||v.length>0))event.returnValue = false;
              //不允许输入多个正负号,不允许在数字中间输入正负号  }else{
        event.returnValue = false;
        alert("请输入数字");
      }
    }
      function checkvalue(obj){
        if(!/^[+|-]?\d+\.?\d*$/.test(obj.value)&&obj.value!=''){
          alert('你输入的不是数字,或关闭输入法后再输入');
          obj.select();
        }
      }
    </script>
    <br>
    用正则<input name="s" onblur="checkvalue(this)"><br>
    用常规<input onkeypress="checkkey(value);" onblur="value=value=='+.'||value=='-.'?value+0:value">