Метод toBoolean

В библиотеке Validator.js преобразование входных данных к булевому типу выполняется через механизм, который интерпретирует строковые представления логических значений и приводит их к true или false. Это особенно важно при обработке данных из HTML-форм, где все значения поступают в виде строк.


Синтаксис и базовое поведение

Функция преобразования принимает строку и возвращает булево значение:

toBoolean(input [, strictMode])
  • input — значение, которое требуется преобразовать
  • strictMode — необязательный параметр, определяющий строгость интерпретации

Результатом всегда является тип boolean.


Нестрогий режим преобразования

В стандартном режиме выполняется гибкое сопоставление значений. Поддерживаются распространённые строковые представления истины и лжи.

Истинные значения:

  • "true"
  • "1"
  • "yes"
  • "on"

Ложные значения:

  • "false"
  • "0"
  • "no"
  • "off"

Дополнительно учитывается регистр символов, либо выполняется нормализация входа к нижнему регистру.

Пример поведения:

toBoolean('true')  // true
toBoolean('YES')   // true
toBoolean('0')     // false
toBoolean('off')   // false

Строгий режим

При включённой строгой проверке интерпретируются только строго определённые значения:

  • "true"true
  • "false"false

Любые другие входные данные считаются некорректными или приводятся к безопасному значению (в зависимости от реализации обработки ошибок в приложении).

Пример:

toBoolean('true', true)   // true
toBoolean('false', true)  // false
toBoolean('1', true)      // невалидное значение (зависит от обработки)

Нормализация входных данных

Перед преобразованием строка обычно проходит предварительную обработку:

  • удаление пробелов по краям
  • приведение к нижнему регистру
  • проверка на пустые значения

Это позволяет снизить количество ошибок при работе с пользовательским вводом:

toBoolean('  YES ')  // true
toBoolean(' Off ')   // false

Таблица интерпретации значений

Входное значение Результат
“true” true
“false” false
“1” true
“0” false
“yes” true
“no” false
“on” true
“off” false

Применение в обработке форм

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

const newsletter = toBoolean(req.body.newsletter);

Это позволяет унифицировать обработку значений, приходящих из чекбоксов, переключателей и текстовых полей.


Интеграция с другими методами Validator.js

Функция преобразования часто применяется совместно с другими проверками:

  • предварительная валидация строки
  • проверка на пустое значение
  • фильтрация допустимых значений

Пример цепочки обработки:

if (isString(input)) {
  const value = toBoolean(input);
}

Обработка некорректных значений

При передаче значений, не входящих в допустимый набор, возможны разные стратегии:

  • возврат false как безопасного значения
  • генерация ошибки валидации
  • игнорирование и использование значения по умолчанию

Особое внимание требуется при обработке пользовательского ввода, где возможны произвольные строки:

toBoolean('maybe') // поведение зависит от конфигурации

Особенности поведения и краевые случаи

Некоторые особенности преобразования:

  • числовые строки обрабатываются как булевы только при совпадении с "1" или "0"
  • пустая строка не считается истинным значением
  • строка с пробелами без содержимого может интерпретироваться как false
  • массивы и объекты не являются валидными входами для преобразования

Практическое значение валидации

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