RegExp第一个字符不能是点,只能是数字

时间:2019-04-02 07:54:06

标签: javascript jquery regex string

我有一个正则表达式,只允许用户输入数字,而不能点逗号(,)。我应该改进以禁用用户输入的第一个字符点。 1.2还可以,但是.2无效

$.fn.inputFilter = function(inputFilter) {
        return this.on("input keydown keyup mousedown mouseup select contextmenu drop", function() {
            if (inputFilter(this.value)) {
                this.oldValue = this.value;
                this.oldSelectionStart = this.selectionStart;
                this.oldSelectionEnd = this.selectionEnd;
            } else if (this.hasOwnProperty("oldValue")) {
                this.value = this.oldValue;
                this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
            }
        });
    };

widthInput.inputFilter(function (value) {
        return /^-?\d*[.]?\d*$/.test(value) // my regExp
});

如何改进此部分/^-?\d*[.]?\d*$/.test(value);满足我的需求?

1 个答案:

答案 0 :(得分:2)

使用否定前瞻:

/^(?!\.)-?\d*[.]?\d*$/