# OneOf - `OneOf(Rule $rule1, Rule $rule2, Rule ...$rule)` Will validate if exactly one inner validator passes. ```php v::oneOf(v::digit(), v::alpha())->isValid('AB'); // true v::oneOf(v::digit(), v::alpha())->isValid('12'); // true v::oneOf(v::digit(), v::alpha())->isValid('AB12'); // false v::oneOf(v::digit(), v::alpha())->isValid('*'); // false ``` The chains above validate if the input is either a digit or an alphabetic character, one or the other, but not neither nor both. ## Templates ### `OneOf::TEMPLATE_NONE` Used when none of the rules have passed. | Mode | Template | |------------|-------------------------------------| | `default` | {{name}} must pass one of the rules | | `inverted` | {{name}} must pass one of the rules | ### `OneOf::TEMPLATE_MORE_THAN_ONE` Used when more than one rule has passed. | Mode | Template | |------------|------------------------------------------| | `default` | {{name}} must pass only one of the rules | | `inverted` | {{name}} must pass only one of the rules | ## Template placeholders | Placeholder | Description | |-------------|------------------------------------------------------------------| | `name` | The validated input or the custom validator name (if specified). | ## Categorization - Composite - Nesting ## Changelog | Version | Description | |--------:|-----------------------------------------| | 3.0.0 | Require at least two rules to be passed | | 0.3.9 | Created | *** See also: - [AllOf](AllOf.md) - [AnyOf](AnyOf.md) - [Circuit](Circuit.md) - [NoneOf](NoneOf.md) - [When](When.md)