用于十进制验证的 Javascript 正则表达式不起作用

Javascript regex for decimal validation not working

本文关键字:正则表达式 不起作用 Javascript 十进制 验证 用于      更新时间:2023-09-26
<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>

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

试试这个正则表达式

  <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>

你也可以这样写,没有任何正则表达式,只进行一次十进制验证:

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

这与(可选)符号匹配,

由任意数量的数字组成,带有可选的小数点后跟数字,

或后跟数字的小数点。