Первый символ регулярного выражения не может быть точкой и только числами

#javascript #jquery #regex #string

#javascript #jquery #регулярное выражение #строка

Вопрос:

У меня есть регулярное выражение, которое позволяет пользователю вводить только числа и точку, а не запятую(,). Я должен улучшить, чтобы отключить ввод пользователем первого символа точка. 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 (значение); чтобы удовлетворить мои потребности?

Комментарии:

1. просто добавьте (?! .) перед вашим регулярным выражением, т.Е. /^(?!.)-? d*[.]?d*$/

Ответ №1:

Используйте отрицательный прогноз:

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