alpha
Validate that a string contains only Unicode alphabetic characters (matched by \p and \p{M}).
alphaDash
Validate that a string contains only Unicode alphanumeric characters plus dashes and underscores.
alphaNum
Validate that a string contains only Unicode alphanumeric characters (letters and digits).
ascii
Validate that a string contains only ASCII characters from the standard table — horizontal tab, line feed, carriage return, and the printable range (space to ~). Extended ASCII characters fail.
contains
Validate that a string contains at least one of the given substrings (case-insensitive).
doesntEndWith
Validate that a string does not end with any of the given substrings (case-insensitive).
doesntStartWith
Validate that a string does not start with any of the given substrings (case-insensitive).
Validate that a string is a syntactically valid email address (RFC 5322 compliant).
endsWith
Validate that a string ends with at least one of the given substrings (case-insensitive).
hexColor
Validate that a string is a valid hex color: 3, 4, 6, or 8 hex digits, with an optional leading #.
ip
Validate that a string is a valid IP address (IPv4 or IPv6).
ipv4
Validate that a string is a valid IPv4 address (four 0-255 octets, dotted notation).
ipv6
Validate that a string is a valid IPv6 address. Accepts full and compressed forms.
json
Validate that a string parses as valid JSON.
length
Validate that a string has exactly N characters.
longerOrEqualTo
Validate that a string is at least as long as another field's string.
longerThan
Validate that a string is strictly longer than another field's string.
lowercase
Validate that a string is entirely lowercase (no uppercase characters anywhere).
macAddress
Validate that a string is a valid MAC address. Accepts colon-separated, dash-separated, and Cisco dot-separated formats — but the same separator must be used throughout.
maxLength
Validate that a string has at most N characters.
minLength
Validate that a string has at least N characters.
notBlank
Validate that a string is not empty and not whitespace-only.
notContains
Validate that a string contains none of the given substrings (case-insensitive).
notRegex
Validate that a string does not match a given regular expression.
regex
Validate that a string matches a given regular expression.
shorterOrEqualTo
Validate that a string is at most as long as another field's string.
shorterThan
Validate that a string is strictly shorter than another field's string.
slug
Validate that a string is a valid URL slug — lowercase alphanumeric characters separated by single dashes, no leading, trailing, or consecutive dashes.
startsWith
Validate that a string starts with at least one of the given substrings (case-insensitive).
string
Validate that a value is a string (typeof === 'string'). Companion to Laravel's string rule. Useful when explicit type guarding is needed separately from any other constraint.
ulid
Validate that a string is a syntactically valid ULID — 26 characters in Crockford base32 (excludes I, L, O, U).
uppercase
Validate that a string is entirely uppercase (no lowercase characters anywhere).
url
Validate that a string is a syntactically valid URL.
uuid
Validate that a string is a syntactically valid UUID (versions 1–5, per RFC 4122).