Проверка положительного числа в jquery

Я использовал выражение для проверки положительного числа следующим образом:

^\d*\.{0,1}\d+$

когда я даю ему ввод -23, он будет отмечать ввод как отрицательный, но когда я даю ему ввод +23, он будет отмечать его как недопустимый номер!

в чем проблема?

Может ли кто-нибудь дать решение, что с +23 оно вернется (положительно)?

Ответы

Ответ 1

Вы считали, что используете что-нибудь рядом с регулярными выражениями?

Если вы используете jQuery Validation Plugin, вы можете создать собственный метод проверки с помощью Validator/addMethod:

$.validator.addMethod('positiveNumber',
    function (value) { 
        return Number(value) > 0;
    }, 'Enter a positive number.');

Изменить:. Поскольку вы хотите только регулярные выражения, попробуйте следующее:

^\+?[0-9]*\.?[0-9]+$

Пояснение:

  • Начало строки (^)
  • Необязательный знак + (\+?)
  • Целочисленная часть числа ([0-9]*)
  • Дополнительная точка (\.?)
  • Дополнительная часть с плавающей запятой ([0-9]+)
  • Конец строки ($)

Ответ 2

Или просто используйте: min: 0.01.

Например, за деньги

Ответ 3

Так как я ищу что-то подобное, это будет проверять положительное, отличное от нуля значение с необязательным знаком "+" (+).

^\+?[1-9][0-9]*$

Это не соответствует десятичным разрядам и не соответствует ведущим нулям.

Ответ 4

Самый простой способ -

$( "#myform" ).validate({
  rules: {
    field: {
      required: true,
      digits: true
    }
  }
});

ref: метод цифр | Плагин проверки jQuery → https://jqueryvalidation.org/digits-method/

Ответ 5

^\+?\d*.{0,1}\d+$

Получает возможность поставить "+" перед номером.

Ответ 6

Если вы настаиваете на использовании регулярного выражения, убедитесь, что вы также фиксируете числа с показателями и допускаете номера формы .42, что совпадает с 0,42.

^ +?\D *.?\D + ([еЕ] +?\D +)? $

должен выполнить трюк.

Ответ 7

ok, попробуйте это;

\+?\d*\.?\d+\b