function regInput(obj, reg, inputStr) { 
            if (obj.readOnly != true) { 
                var docSel = document.selection.createRange(); 
                if (docSel.parentElement().tagName != "INPUT") 
                    return false;                 oSel = docSel.duplicate(); 
                oSel.text = "";                 var srcRange = obj.createTextRange(); 
                oSel.setEndPoint("StartToStart", srcRange);                 var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length); 
                return reg.test(str); 
            } 
            else { 
                return true; 
            } 
        } 
        function MastInt(obj) { 
            return regInput(obj, /^[0-9]*$/, String.fromCharCode(event.keyCode)); 
        }   <asp:TextBox ID="txt_Amount" runat="server" Width="160px" MaxLength="10" Style="ime-mode: disabled" onkeypress="return MastDecimal(this);"> </asp:TextBox> 
现在只能限制输入整数 我要改成 限制只能输入整数或最多带2位小数的,一位当然也可以。哪个高手帮个忙 教下.

解决方案 »

  1.   

      function MastInt(obj) { 
                return regInput(obj,/^\d*\.?\d{0,2}$/, String.fromCharCode(event.keyCode)); 
            } 
    我按这样改了 也不行啊 。
    正则一点都不会。
      

  2.   

    http://marscom.javaeye.com/blog/179347
    很长好的例子~~~~~
      

  3.   

    /^(([1-9]\d*)(\.\d{1,})^(([1-9]\d*(\.\d*[1-9])?)
      

  4.   

    <asp:TextBox ID="txt_Num" runat="server" Width="150px" MaxLength="5" onkeyup=" if(!isNaN(this.value)){ this.value=this.value.replace(/^(\d+\.\d{2})\d*$/,'$1') }  else {  this.value =String(this.value.substring(0,this.value.length-1)); }">0</asp:TextBox>
      

  5.   

    function isTriDecimal(value){   
                    if(value!=null&&value!=''){   
                        var decimalIndex=value.indexOf('.');   
                        if(decimalIndex=='-1'){   
                            return false;   
                        }else{   
                            var decimalPart=value.substring(decimalIndex+1,value.length);   
                            if(decimalPart.length>2){   
                                return true;   
                            }else{   
                                return false;   
                            }   
                        }   
                    }   
                    return false;   
                }   
      
    <input name="sumAdjust" type="text" id="sumAdjust" size="20" value='<c:out value="${form1.sumAdjust}" />'    
        onkeyup="if(isNaN(value)||isTriDecimal(value))execCommand('undo')"    
        onafterpaste="if(isNaN(value)||isTriDecimal(value))execCommand('undo')"