respect-validation/docs/rules/Alnum.md
Henrique Moody 951c16e8e6
Refactor the NotEmoji rule
Since we have the ability to use `not` as a prefix, having rules that
validate negative behaviour makes them a bit inflexible, verbose, and
harder to understand.

This commit will refactor the `NotEmoji` and rename it to `Emoji`. It
will no longer check if the string contains emojis, but rather if the
string is an emoji or not. I’m also adding support to more emojis, since
the rule was a bit outdated.

This change will make the validator more strict, but will make it useful
in other scenarios. However, later on, I would like to create a rule
called `has` which, could use a validator like `Emoji` to check if the
input _has_ emojis.

Assisted-by: Cursor (claude-4.5-opus-high)
2025-12-29 11:16:25 +01:00

2.5 KiB

Alnum

  • Alnum()
  • Alnum(string ...$additionalChars)

Validates whether the input is alphanumeric or not.

Alphanumeric is a combination of alphabetic (a-z and A-Z) and numeric (0-9) characters.

v::alnum()->isValid('foo 123'); // false
v::alnum(' ')->isValid('foo 123'); // true
v::alnum()->isValid('100%'); // false
v::alnum('%')->isValid('100%'); // true
v::alnum('%', ',')->isValid('10,5%'); // true

You can restrict case using the Lowercase and Uppercase rules.

v::alnum()->uppercase()->isValid('example'); // false

Message template for this validator includes {{additionalChars}} as the string of extra chars passed as the parameter.

Templates

Alnum::TEMPLATE_STANDARD

Mode Template
default {{subject}} must contain only letters (a-z) and digits (0-9)
inverted {{subject}} must not contain letters (a-z) or digits (0-9)

Alnum::TEMPLATE_EXTRA

Mode Template
default {{subject}} must contain only letters (a-z), digits (0-9), and {{additionalChars}}
inverted {{subject}} must not contain letters (a-z), digits (0-9), or {{additionalChars}}

Template placeholders

Placeholder Description
additionalChars Additional characters that are considered valid.
subject The validated input or the custom validator name (if specified).

Categorization

  • Strings

Changelog

Version Description
2.0.0 Removed support to whitespaces by default
0.3.9 Created

See also: