В библиотеке 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);
Это позволяет унифицировать обработку значений, приходящих из чекбоксов, переключателей и текстовых полей.
Функция преобразования часто применяется совместно с другими проверками:
Пример цепочки обработки:
if (isString(input)) {
const value = toBoolean(input);
}
При передаче значений, не входящих в допустимый набор, возможны разные стратегии:
false как безопасного значенияОсобое внимание требуется при обработке пользовательского ввода, где возможны произвольные строки:
toBoolean('maybe') // поведение зависит от конфигурации
Некоторые особенности преобразования:
"1" или "0"falseПреобразование к булевому типу обеспечивает единообразие обработки данных, поступающих из внешних источников. Это снижает необходимость ручной проверки каждого возможного варианта и упрощает работу с логическими параметрами в прикладной логике.