用js 限制  下面2个输入框。 <input type="text"  id="id1"  />
 <input type="text"  id="id2"  />要求:    若 不满足格式的话,就不让其显示在 text里面。(还要防止复制非法格式数据,防止输入多个".",要浏览器兼容)id1输入规则:     最多输入12位整数,和2位小数。       即:可以是整数,也可以是小数。若是小数的话,只能小数为2位id2输入规则:    最多输入 3位整数,4位小数。注意:  非法格式 在键被按下的时候 就不让其显示在 text 里面在线等!!!!!!!!!!!!

解决方案 »

  1.   

    regx=/^([1-9]\d{0,11})|([1-9]\d{0,11}\.\d{0,2})|\d\.\d{0,2}$/;
      

  2.   

    思路是这样的:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function checkval(val){
    //在这里更正值。
    } function showval(val){
    var cval = event.keyCode;
    if(cval>=48 && cval <=57 ||cval==190){
    return true;
    }else{
    return false;
    }
    }

    //-->
    </SCRIPT>
    </HEAD><BODY>
    <INPUT TYPE="text" NAME="id1" id="id1" onkeyup="checkval(this.value)" onkeydown="return showval(this.value)">
    <INPUT TYPE="text" NAME="id2" id="id2">
    </BODY>
    </HTML>
      

  3.   

    <input type="text" id="id1" onkeypress="check(this)"/>
    <script type="text/javascript">
    function check(textInput){
       var regx = /([1-9]\d{0,11})|([1-9]\d{0,11}\.\d{0,2})|\d\.\d{0,2}/;
       var s = textInput.value.match(regx);
       if(s != textInput.value ){
           textInput.value=s;
       }
    }
    </script>
      

  4.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>test</title>
        <script type="text/javascript">
            window.onload=function(){
                document.getElementById("id1").onkeydown=function(){
                    var i=String.fromCharCode(event.keyCode);
                    
                    if(event.keyCode==190)i=".";
                    if(event.keyCode==8||event.keyCode==9||event.keyCode==13)return true;
                    return (/^(\d{1,12}|\d{1,12}\.|\d{1,12}\.\d{1,2})$/).test(this.value+""+i);
                }
                document.getElementById("id2").onkeydown=function(){
                    var i=String.fromCharCode(event.keyCode);
                    
                    if(event.keyCode==190)i=".";
                    if(event.keyCode==8||event.keyCode==9||event.keyCode==13)return true;
                    return (/^(\d{1,3}|\d{1,3}\.|\d{1,3}\.\d{1,4})$/).test(this.value+""+i);
                }
                
            };
        </script>
    </head>
    <body>  
    <input type="text" id="id1" />
    <input type="text" id="id2" />
    </body>
    </html>
      

  5.   

    <input type="text" id="id1" onkeyup="check(this)"/>
    <script type="text/javascript">
    function check(textInput){
      var regx = /[1-9]\d{0,11}\.\d{0,2}|\d\.\d{0,2}|0|[1-9]\d{0,11}/;
      var s = textInput.value.match(regx);
      if(s != textInput.value ){
       textInput.value=s;
      }
    }
    </script>
    这个一定行(12位整数,2位小数)
      

  6.   

    <input type="text" id="id1" onkeyup="check(this)"/>
    <script type="text/javascript">
    function check(textInput){
      var regx = /[1-9]\d{0,11}\.\d{0,2}|\d\.\d{0,2}|0|[1-9]\d{0,11}/;
      var s = textInput.value.match(regx);
      if(s != textInput.value ){
      textInput.value=s;
      }
    }
    </script>
      

  7.   

    楼上的朋友,当你输入字符时候,就会变成Null   ie7下
      

  8.   

    正则表达式很有用啊,JS的正则和C#的正则会是一样的吗