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>

这是不允许.输入的,所以有人可以帮我出什么问题

4

3 回答 3

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>
于 2013-11-14T13:42:37.707 回答
0

您也可以在没有任何正则表达式的情况下这样编写,仅用于一个小数验证:

var str = "hello.world"
var str2 = str.split(".");
var validate = str2.length;
if(validate != 1){
   alert("Decimal present");
}
else{
   alert("No decimal found");
}
于 2013-11-14T13:43:23.777 回答
0
var decimal=/^[+-]?(\d+(\.\d+)?|\.\d+)$/;

这匹配一个(可选的)标志,

后跟任意数量的数字,可选的小数点后跟数字,

或小数点后跟数字。

于 2013-11-14T14:36:42.063 回答