docs/validators.md
In this page you will find a list of validators by their category.
Arrays: ArrayType - ArrayVal - Contains - ContainsAny - ContainsCount - Each - EndsWith - In - Key - KeyExists - KeyOptional - KeySet - Sorted - StartsWith - Subset - Unique
Banking: CreditCard - Iban
Booleans: AlwaysInvalid - AlwaysValid - BoolType - BoolVal - FalseVal - TrueVal
Callables: After - CallableType - Factory - Satisfies
Comparisons: All - Between - BetweenExclusive - Equals - Equivalent - GreaterThan - GreaterThanOrEqual - Identical - In - Length - LessThan - LessThanOrEqual - Max - Min
Composite: AllOf - AnyOf - NoneOf - OneOf - ShortCircuit
Conditions: Not - ShortCircuit - When
Date and Time: Date - DateTime - DateTimeDiff - LeapDate - LeapYear - Time
Display: Format - Formatted - Named - Templated
File system: Directory - Executable - Exists - Extension - File - Image - Mimetype - Readable - Size - SymbolicLink - Writable
ISO codes: CountryCode - CurrencyCode - LanguageCode - SubdivisionCode
Identifications: Bsn - Cnh - Cnpj - Cpf - Hetu - Imei - Isbn - Luhn - MacAddress - NfeAccessKey - Nif - Nip - Pesel - Pis - PolishIdCard - PortugueseNif
Internet: Domain - Email - Ip - PublicDomainSuffix - Tld - Url
Localization: CountryCode - CurrencyCode - LanguageCode - PostalCode - SubdivisionCode
Math: Factor - Finite - Infinite - Multiple - Negative - Positive
Miscellaneous: Blank - Falsy - Named - Templated - Undef
Nesting: After - AllOf - AnyOf - Each - Factory - Key - KeySet - NoneOf - Not - NullOr - OneOf - Property - PropertyOptional - ShortCircuit - UndefOr - When
Numbers: Base - Decimal - Digit - Even - Factor - Finite - FloatType - FloatVal - Infinite - IntType - IntVal - Multiple - Negative - Number - NumericVal - Odd - Positive - Roman
Objects: Attributes - Instance - ObjectType - Property - PropertyExists - PropertyOptional
Strings: Alnum - Alpha - Base64 - Charset - Consonant - Contains - ContainsAny - ContainsCount - Control - Digit - Emoji - EndsWith - Format - Graph - HexRgbColor - In - Json - Lowercase - Phone - PostalCode - Printable - Punct - Regex - Slug - Sorted - Space - Spaced - StartsWith - StringType - StringVal - Trimmed - Uppercase - Uuid - Version - Vowel - Xdigit
Structures: Attributes - Key - KeyExists - KeyOptional - KeySet - Property - PropertyExists - PropertyOptional
Transformations: After - All - Each - Formatted - Length - Max - Min - Size
Types: ArrayType - ArrayVal - BoolType - BoolVal - CallableType - Countable - FloatType - FloatVal - IntType - IntVal - IterableType - IterableVal - NullType - NumericVal - ObjectType - ResourceType - ScalarVal - StringType - StringVal
v::after(str_split(...), v::arrayType()->lengthEquals(5))->assert('world');v::all(v::dateTime())->assert($releaseDates);v::allOf(v::intVal(), v::positive())->assert(15);v::alnum(' ')->assert('foo 123');v::alpha(' ')->assert('some name');v::not(v::alwaysInvalid())->assert('whatever');v::alwaysValid()->assert('whatever');v::anyOf(v::intVal(), v::floatVal())->assert(15.5);v::arrayType()->assert([]);v::arrayVal()->assert([]);v::attributes()->assert(new Person('John Doe', '2020-06-23', '[email protected]'));v::base(2)->assert('011010001');v::base64()->assert('cmVzcGVjdCE=');v::intVal()->between(10, 20)->assert(10);v::betweenExclusive('a', 'e')->assert('c');v::blank()->assert(' ');v::boolType()->assert(true);v::boolVal()->assert('on');v::bsn()->assert('612890053');v::callableType()->assert(function () {});v::charset('ASCII')->assert('sugar');v::cnh()->assert('02650306461');v::cnpj()->assert('00394460005887');v::consonant()->assert('xkcd');v::contains('ipsum')->assert('lorem ipsum');v::containsAny(['lorem', 'dolor'])->assert('lorem ipsum');v::containsCount('ipsum', 2)->assert('ipsum lorem ipsum');v::control()->assert("\n\r\t");v::countable()->assert([]);v::countryCode()->assert('BR');v::cpf()->assert('95574461102');v::creditCard()->assert('5376 7473 9720 8720');v::currencyCode()->assert('GBP');v::date()->assert('2017-12-31');v::dateTime()->assert('2009-01-01');v::dateTimeDiff('years', v::greaterThan(18), 'd/m/Y')->assert('09/12/1990');v::decimal(2)->assert('27990.50');v::digit(' ')->assert('020 612 1851');v::directory()->assert(__DIR__);v::domain()->assert('google.com');v::each(v::dateTime())->assert($releaseDates);v::email()->assert('[email protected]');v::emoji()->assert('🍕');v::endsWith('ipsum')->assert('lorem ipsum');v::equals('alganet')->assert('alganet');v::equivalent(1)->assert(true);v::intVal()->even()->assert(2);v::executable()->assert('/path/to/executable');v::exists()->assert(__FILE__);v::extension('png')->assert('image.png');v::factor(0)->assert(5);v::factory(static fn($input) => v::boolVal())->assert(true);v::falseVal()->assert(false);v::falsy()->assert('');v::file()->assert(__FILE__);v::finite()->assert('10');v::floatType()->assert(1.5);v::floatVal()->assert(1.5);v::format(f::pattern('00-00'))->assert('42-33');v::formatted(f::mask('1-4'), v::email())->assert('[email protected]');v::graph()->assert('LKM@#$%4;');v::greaterThan(10)->assert(11);v::intVal()->greaterThanOrEqual(10)->assert(10);v::hetu()->assert('010106A9012');v::hexRgbColor()->assert('#FFFAAA');v::iban()->assert('SE35 5000 0000 0549 1000 0003');v::identical(42)->assert(42);v::image()->assert('/path/to/image.gif');v::imei()->assert('35-209900-176148-1');v::in('lorem ipsum')->assert('ipsum');v::infinite()->assert(INF);v::instance('DateTime')->assert(new DateTime);v::intType()->assert(42);v::intVal()->assert('10');v::ip()->assert('127.0.0.1');v::isbn()->assert('ISBN-13: 978-0-596-52068-7');v::iterableType()->assert([]);v::iterableVal()->assert([]);v::json()->assert('{"foo":"bar"}');v::key('name', v::stringType())->assert(['name' => 'The Respect Panda']);v::keyExists('name')->assert(['name' => 'The Respect Panda']);v::keyOptional('name', v::stringType())->assert([]);v::keySet(v::key('foo', v::intVal()))->assert(['foo' => 42]);v::languageCode()->assert('pt');v::leapDate('Y-m-d')->assert('1988-02-29');v::leapYear()->assert('1988');v::length(v::between(1, 5))->assert('abc');v::lessThan(10)->assert(9);v::lessThanOrEqual(10)->assert(9);v::stringType()->lowercase()->assert('xkcd');v::luhn()->assert('2222400041240011');v::macAddress()->assert('00:11:22:33:44:55');v::max(v::equals(30))->assert([10, 20, 30]);v::mimetype('image/png')->assert('/path/to/image.png');v::min(v::equals(10))->assert([10, 20, 30]);v::intVal()->multiple(3)->assert(9);v::named('Your email', v::email())->assert('[email protected]');v::numericVal()->negative()->assert(-15);v::nfeAccessKey()->assert('52060433009911002506550120000007800267301615');v::nif()->assert('49294492H');v::nip()->assert('1645865777');v::noneOf(v::intVal(), v::floatVal())->assert('foo');v::not(v::ip())->assert('foo');v::nullOr(v::email())->assert(null);v::nullType()->assert(null);v::number()->assert(42);v::numericVal()->assert(-12);v::objectType()->assert(new stdClass);v::odd()->assert(3);v::oneOf(v::digit(), v::alpha())->assert('AB');v::pesel()->assert('21120209256');v::phone()->assert('+1 650 253 00 00');v::pis()->assert('120.0340.678-8');v::polishIdCard()->assert('AYW036733');v::portugueseNif()->assert('124885446');v::positive()->assert(1);v::postalCode('BR')->assert('02179000');v::printable()->assert('LMKA0$% _123');v::property('name', v::equals('The Respect Panda'))->assert($object);v::propertyExists('name')->assert($object);v::propertyOptional('name', v::notBlank())->assert($object);v::publicDomainSuffix()->assert('co.uk');v::punct()->assert('&,.;[]');v::readable()->assert('/path/to/file.txt');v::regex('/[a-z]/')->assert('a');v::resourceType()->assert(fopen('/path/to/file.txt', 'r'));v::roman()->assert('IV');v::satisfies(fn (int $input): bool => $input % 5 === 0,)->assert(10);v::scalarVal()->assert(135.0);v::shortCircuit(v::intVal(), v::positive())->assert(15);v::size('KB', v::greaterThan(1))->assert('/path/to/file');v::slug()->assert('my-wordpress-title');v::sorted('ASC')->assert([1, 2, 3]);v::space()->assert(' ');v::spaced()->assert('foo bar');v::startsWith('lorem')->assert('lorem ipsum');v::stringType()->assert('hi');v::stringVal()->assert('6');v::subdivisionCode('BR')->assert('SP');v::subset([1, 2, 3])->assert([1, 2]);v::symbolicLink()->assert('/path/to/symbolic-link');v::templated('You must provide a valid email', v::email())->assert('[email protected]');v::time()->assert('00:00:00');v::tld()->assert('com');v::trimmed()->assert('lorem ipsum');v::trueVal()->assert(true);v::undef()->assert('');v::undefOr(v::alpha())->assert('');v::unique()->assert([]);v::uppercase()->assert('W3C');v::url()->assert('http://example.com');v::uuid()->assert('eb3115e5-bd16-4939-ab12-2b95745a30f3');v::version()->assert('1.0.0');v::vowel()->assert('aei');v::when(v::intVal(), v::positive(), v::notBlank())->assert(1);v::writable()->assert('/path/to/file');v::xdigit()->assert('abc123');