Метод isInt в библиотеке validator.js используется для
проверки, является ли переданное значение целым числом. Поддерживается
работа как со строковыми представлениями чисел, так и с числовыми
типами, однако основная обработка ориентирована на строки, поскольку
именно такой формат чаще поступает из пользовательского ввода.
isInt(value [, options])
value — проверяемое значение (строка или число)options — объект дополнительных ограниченийБез дополнительных параметров проверяется только соответствие целому числу:
validator.isInt('42'); // true
validator.isInt('-42'); // true
validator.isInt('42.0'); // false
validator.isInt('42.5'); // false
validator.isInt('abc'); // false
Проверка строго ориентируется на формат, а не на приведение типов.
Строка "42" считается допустимой, тогда как
" 42 " или "042" могут требовать
дополнительных настроек.
validator.isInt('10', { min: 5, max: 20 });
min — минимально допустимое значение
(включительно)max — максимально допустимое значение
(включительно)Примеры:
validator.isInt('4', { min: 5 }); // false
validator.isInt('5', { min: 5 }); // true
validator.isInt('21', { max: 20 }); // false
validator.isInt('042', { allow_leading_zeroes: false });
allow_leading_zeroes — разрешает или запрещает ведущие
нулиПоведение:
validator.isInt('042'); // true (по умолчанию)
validator.isInt('042', { allow_leading_zeroes: false }); // false
false1e3) не распознаётся как целое
число10.0), считаются невалиднымиМетод isFloat предназначен для проверки чисел с
плавающей точкой. Он применяется для валидации как целых, так и дробных
значений, поскольку любое целое число может быть представлено как
float.
isFloat(value [, options])
value — проверяемое значениеoptions — дополнительные ограничения форматаvalidator.isFloat('3.14'); // true
validator.isFloat('-3.14'); // true
validator.isFloat('10'); // true
validator.isFloat('10.0'); // true
validator.isFloat('abc'); // false
Особенность метода заключается в том, что целые числа также проходят проверку как корректные float-значения.
validator.isFloat('3.5', { min: 2, max: 5 });
min — нижняя границаmax — верхняя границаПримеры:
validator.isFloat('1.9', { min: 2 }); // false
validator.isFloat('2.0', { min: 2 }); // true
validator.isFloat('5.1', { max: 5 }); // false
validator.isFloat('3.1415', { decimal_digits: '0,2' });
decimal_digits — ограничение количества знаков после
запятой Форматы:
"1,3" — от 1 до 3 знаков"2" — строго 2 знакаПримеры:
validator.isFloat('3.1', { decimal_digits: '1,2' }); // true
validator.isFloat('3.141', { decimal_digits: '1,2' }); // false
validator.isFloat('3,14', { locale: 'de-DE' });
locale — определяет формат десятичного разделителяПримеры:
validator.isFloat('3.14', { locale: 'en-US' }); // true
validator.isFloat('3,14', { locale: 'de-DE' }); // true
isInt — только целые числа без дробной частиisFloat — любые числа, включая целые и дробныеvalidator.isInt('10'); // true
validator.isFloat('10'); // true
validator.isInt('10.0'); // false
validator.isFloat('10.0'); // true
Оба метода работают со строковым представлением, но интерпретируют формат по-разному:
isInt отклоняет любые дробные символыisFloat допускает точку или запятую как разделитель
дробной частиОба метода поддерживают min и max, однако
смысл проверки зависит от типа числа:
isInt сравнение происходит в целочисленном
контекстеisFloat учитываются дробные значения без
округленияvalidator.isInt(req.body.age, { min: 0, max: 120 });
validator.isFloat(req.body.price, { min: 0 });
isInt)isFloat)validator.isFloat(value, { decimal_digits: '0,2' });
Используется для финансовых данных, где важна фиксированная точность.
Оба метода демонстрируют строгую валидацию:
null и undefined всегда возвращают
falsevalidator.isInt('123abc'); // false
validator.isFloat('12.3.4'); // false