2013-11-14 51 views
0
<script type="text/javascript">  
function allowDecimal(txt) { 
     var theEvent = txt.htmlEvent || window.event; 
     var key = theEvent.keyCode || theEvent.which; 
     key = String.fromCharCode(key); 
     var regex = /^\d*[0-9](|.\d*[0-9]|)*$/; 

     if (!regex.test(key)) { 
      theEvent.returnValue = false; 
      if (theEvent.preventDefault) 
       theEvent.preventDefault(); 
     } 
    } 

<asp:TextBox ID="txt" runat="server" onkeypress="allowDecimal(this);"></asp:TextBox> 

這是不允許.將其姓名可有一個人幫我出了什麼問題的Javascript正則表達式小數驗證工作不

回答

1

嘗試這個表達式

<script type="text/javascript">  
    function allowDecimal(txt) { 
    var theEvent = txt.htmlEvent || window.event; 
    var key = theEvent.keyCode || theEvent.which; 
    key = String.fromCharCode(key); 
    var regex = /^\d*\.?\d*$/; 

    if (!regex.test(key)) { 
     theEvent.returnValue = false; 
     if (theEvent.preventDefault) 
      theEvent.preventDefault(); 
    } 
} 
</script> 
+0

允許有十進制但有多個小數點不應該允許 – Dotnet

0

你也可以這樣寫不任何正則表達式只能進行一次十進制驗證:

var str = "hello.world" 
var str2 = str.split("."); 
var validate = str2.length; 
if(validate != 1){ 
    alert("Decimal present"); 
} 
else{ 
    alert("No decimal found"); 
} 
0
var decimal=/^[+-]?(\d+(\.\d+)?|\.\d+)$/; 

這一個(可選的)符號相匹配,

通過任何數目的位,並帶有可選的小數點後面的數字folllowed,

或小數點後面的數字。