【问题标题】:Javascript/Jquery validating decimal input on keyupJavascript/Jquery 在 keyup 上验证十进制输入
【发布时间】:2026-02-19 08:20:03
【问题描述】:

我正在尝试找到一种方法来验证按键时的文本输入,我希望仅在我的文本输入中允许数字,包括小数。 我正在采取使用jQuery.keydown的方法,并检查密钥是什么并使用。

输入数字最大长度 999.999

-

我在 .(点)3 之后的结果是 goog。但是 99999.999

我需要 999.999,222.222,22.01 -> 最大长度 +++.+++

这是我的代码

<input type="text" id="spinEdit2" class="aSpinEdit" />

<script type="text/javascript">
var txt = document.getElementById('spinEdit2');
    txt.addEventListener('keyup', myFunc);

    function myFunc(e) {
        var val = this.value;

        var re1 = /^([0-9]+[\.]?[0-9]?[0-9]?[0-9]?|[0-9])/g;
            val = re1.exec(val);
            //console.log(val);
            if (val) {
                this.value = val[0];
            } else {
                this.value = "";
            }

    }
</script>

谢谢

【问题讨论】:

    标签: javascript jquery regex


    【解决方案1】:

    怎么样

    /^([0-9]{1,3}(?:\.[0-9]{0,3})?)/g
    

    如果您想了解详细信息:{1,3} 表示前面的事情可能会发生 1 到 3 次。 (?:) 是一个未捕获的组——它是以下符号的分组,但它不会捕获到任何变量,例如 $1。

    【讨论】: