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

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

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

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

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

  1. Метод «isInteger».

    Number.isInteger(value)

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

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

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

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

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

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

    /^(0|-?[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
Темы:
JavaScript
Ещё интересное — 6
Комментарии —
  1. Анна
    Анна13 марта 2022, 19:22#
    Большое спасибо, статья помогла решить некоторые задачки. Приятно, что вы рассматриваете разные варианты :)
    1. Andy Si14 марта 2022, 09:14#
      Благодарю за обратную связь ;)
    2. Andy
      Andy01 октября 2022, 00:33#
      К String(parseFloat(value, 10)) === String(value) надо добавить && value !== 'NaN'
      © REALADMIN.RU   2024 г.
      Страница сгенерирована: 0,1798 s | 4 mb.
      На каком уровне Вы играете в шахматы?
      OPROS