respect-validation/docs/validators/ContainsCount.md
Alexandre Gomes Gaigalas ec16b3d2df Refactor case sensitiveness support
This is a mid-size refactor that affects several validators.

Most prominently, the ones that had an `$identical` parameter
to deal with case sensitiveness.

This parameter was confusing, effectively making validators such
as `Contains` behave very differently for arrays versus strings.

In arrays, `$identical` meant "the same type", while it in strings
it meant "case sensitive".

That parameter was removed, and the default behavior is now to
always compare **case sensitive** and strict typing.

A document explaining how to combine other validators in order
to achieve case _insensitive_ comparisons was added.

Additionally, the `Call` validator was refactored back to be
suitable to take on the task of being a fast, quick composable
validator.

With the introduction of `Circuit`, we can shift the responsibility
of dealing with possible mismatches to the user. This kind of type
handling is demonstrated in how I refactored `Tld` to account for
the type mismatch without setting error handlers.
2026-01-30 17:11:13 +00:00

2 KiB

ContainsCount

  • ContainsCount(mixed $containsValue, int $count)

Validates if the input contains a value a specific number of times.

For strings:

v::containsCount('ipsum', 2)->assert('ipsum lorem ipsum');
// Validation passes successfully

For arrays:

v::containsCount('ipsum', 2)->assert(['ipsum', 'lorem', 'ipsum']);
// Validation passes successfully

Templates

ContainsCount::TEMPLATE_TIMES

Mode Template
default {{subject}} must contain {{containsValue}} {{count}} time(s)
inverted {{subject}} must not contain {{containsValue}} {{count}} time(s)

ContainsCount::TEMPLATE_ONCE

Mode Template
default {{subject}} must contain {{containsValue}} only once
inverted {{subject}} must not contain {{containsValue}} only once

Template placeholders

Placeholder Description
containsValue The value to search for in the input.
subject The validated input or the custom validator name (if specified).
count Number of times that the needle might appear in the haystack.

Categorization

  • Arrays
  • Strings

Changelog

Version Description
3.0.0 Created

See Also