RealAdmin

Способы валидации чисел в JavaScript

Способы валидации чисел в JavaScript
Комментарии: 0

Проверка переменной на целое число или с плавающей точкой в javascript может осуществляться разными способами. Рассмотрим их преимущества и недостатки, а в конце сделаем ещё проверку на чётность и нечётность.

Валидация целых чисел

Рассмотрим 4 способа валидации переменной «value» на простое число. Все представленные выражения возвращают булевый тип — «true» или «false».

  1. Метод «isInteger».

    Number.isInteger(value)

    Недостаток — возвращает положительный результат для значений с нулём в начале, например: 05, 0007, 011. В некоторых случаях это может быть критично.

    Для отсеивания отрицательных чисел добавьте дополнительное условие:

    Number.isInteger(value) && value >= 0
  2. Функция «isNaN» работает противоположно предыдущему методу, поэтому вызываем её со знаком отрицания. Недостатки те же.

    !isNaN(value)
  3. Один из самых популярных способов — валидация регулярным выражением:

    /^[1-9]\d*$/.test(value)

    Из недостатков отмечу только плохую читаемость в коде. Зато не пропускаются значения с нулём в начале и выражение может быть подстроено под любые нужды. Например, этот пример не пропускает отрицательные числа и не ограничен количеством цифр, но это легко поправить.

    /^-?[1-9]\d{0,5}$/.test(value)
  4. А это оригинальный подход с использованием операции побитового исключающего ИЛИ:

    (value ^ 0) == value && value != '' 

    Дополнительная проверка на пустоту обязательна, потому что ('' ^ 0) == '' вернёт «true».

  5. Закончим функцией преобразования переменной в десятичную систему исчисления. Если в качестве параметра будет не число, то функция вернёт «NaN», а сравнение — «false».

    String(parseInt(value, 10)) === String(value)

Числа с плавающей точкой

Для проверки переменной на число с точкой (запятой) в JS наиболее распространены три способа.

  1. Применение функции «parseFloat».

    String(parseFloat(value, 10)) === String(value)
  2. Регулярное выражение, позволяющее указать, сколько допускается знаков после точки. В примере истинное значение вернется если будет не более 2х.

    /^(0|[1-9]\d*)(\.[0-9]{1,2})?$/.test(value)

    Здесь разрешаем 4 знака после точки и отрицательные числа:

    /^-?(0|[1-9]\d*)(\.[0-9]{1,4})?$/.test(value)
  3. Применение функции «isNaN» в комплексе с нахождением точки.

    !isNaN(value) && String(value).includes('.')

Проверка на чётность

Для проверки на чётность в JS используют оператор остатка от деления.

value % 2 == 0

Сравнение вернёт истину, если «value» чётное число и ложь — если нечётное.

Ну или так :)
funny js
Темы:
Ещё интересное — 6
Комментарии —
    © REALADMIN.RU   2020 г.
    Страница сгенерирована: 0,1682 s | 6 mb.
    На каком уровне Вы играете в шахматы?
    О П Р О С