Метод contains в библиотеке Validator.js предназначен
для проверки наличия подстроки внутри строки. Он используется для
базовой валидации текстовых значений, когда необходимо убедиться, что
строка содержит определённый фрагмент.
contains(str, seed [, options])
str — проверяемая строкаseed — подстрока, наличие которой требуется
подтвердитьoptions — объект дополнительных параметровВ простейшем варианте метод проверяет, входит ли seed в
str:
validator.contains('hello world', 'world'); // true
validator.contains('hello world', 'cat'); // false
Проверка чувствительна к регистру, если не указано иное.
Объект options расширяет поведение метода и позволяет
уточнять условия проверки.
Позволяет игнорировать регистр символов при сравнении.
validator.contains('Hello World', 'hello', { ignoreCase: true }); // true
Без этого параметра:
validator.contains('Hello World', 'hello'); // false
Задаёт минимальное количество вхождений подстроки.
validator.contains('foo foo foo', 'foo', { minOccurrences: 2 }); // true
validator.contains('foo foo foo', 'foo', { minOccurrences: 4 }); // false
Ограничивает максимальное количество допустимых вхождений.
validator.contains('foo foo foo', 'foo', { maxOccurrences: 2 }); // false
validator.contains('foo foo', 'foo', { maxOccurrences: 2 }); // true
Особое внимание требуется при работе с пустыми строками:
validator.contains('', 'a'); // false
validator.contains('abc', ''); // true (в некоторых версиях считается валидным совпадением)
Такое поведение зависит от реализации и требует проверки документации конкретной версии Validator.js.
Метод часто применяется в следующих случаях:
Пример фильтрации:
if (validator.contains(comment, 'http')) {
// обработка потенциальной ссылки
}
Метод не предназначен для сложных паттернов:
Для подобных задач используется метод matches
Метод matches предназначен для проверки строки на
соответствие регулярному выражению. В отличие от contains,
он позволяет задавать сложные правила проверки с использованием
regex.
matches(str, pattern [, modifiers])
str — строка для проверкиpattern — регулярное выражение (строка или RegExp)modifiers — строка модификаторов (например,
"i", "g")validator.matches('hello123', '\\d+'); // true
validator.matches('hello', '\\d+'); // false
Проверка осуществляется по совпадению хотя бы одного участка строки с шаблоном.
В качестве шаблона может передаваться объект регулярного выражения:
validator.matches('abc123', /[a-z]+\d+/); // true
Такой подход удобен при динамической сборке сложных выражений.
Модификаторы позволяют управлять поведением регулярного выражения.
validator.matches('HELLO', 'hello', 'i'); // true
Хотя g редко влияет на булевый результат, он может
использоваться в более сложных сценариях анализа строки.
validator.matches('user@mail.com', '^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$');
validator.matches('12345', '^\\d+$'); // true
validator.matches('https://site.com', '^https?://');
| Характеристика | contains | matches |
|---|---|---|
| Тип проверки | простая подстрока | регулярное выражение |
| Гибкость | низкая | высокая |
| Производительность | выше | ниже при сложных regex |
| Контроль формата | отсутствует | полный контроль |
Метод применяется для:
Пример проверки телефона:
validator.matches('+1234567890', '^\\+\\d{10,15}$');
contains целесообразен при простой проверке наличия
фрагментаmatches используется при строгой структурной
валидации