Creator Laravel Validation

vdhicts/laravel-validation-rules

Collection of extra validation rules for Laravel, including BIC, IBAN, Dutch postal codes, phone numbers and more.

Laravel Validation Rules

This package offers extra validation rules for Laravel.

Requirements#

This package requires Laravel 11+ and PHP 8.2+. If you need to support older version, see the table below:

Version Compatible with
9.0.0 13+
7.0.0 12+
6.0.0 11+
4.0.0+ 10+
3.0.0 9+
1.4.0+ 8+
1.2.0+ 7+
1.1.0 6+
1.0.1 5.7+

Installation#

You can install the package via composer:

composer require vdhicts/laravel-validation-rules

The package will automatically register itself in Laravel.

Translation#

The package includes both English and Dutch translations. The translations can be published by running:

php artisan vendor:publish

Available Rules#

BicNumber#

Validates the provided BIC number.

'field' => [new BicNumber()],

Contains#

Validates if the value contains a certain phrase.

'field' => [new Contains($needle)],

ContainsAny#

Validates if the value contains any of the provided phrases.

'field' => [new ContainsAny(['foo', 'bar'])],

DateAfterOrEqual#

Validates if the value is a date after or equals the provided date (Carbon).

'field' => [new DateAfterOrEqual($date)],

DateBeforeOrEqual#

Validates if the value is a date before or equals the provided date (Carbon).

'field' => [new DateBeforeOrEqual($date)],

DateHasSpecificMinutes#

Validates if the selected minutes for the provided date are according to the available minutes.

'field' => [new DateHasSpecificMinutes([0, 15, 30, 45])],

When the date is not according to the 'Y-m-d H:i' format then you are able to specify the format as second parameter:

'field' => [new DateHasSpecificMinutes([0, 15, 30, 45], 'd-m-Y H:i')],

DutchPhone#

Validates if the value is a valid Dutch phone number. Both mobile or landlines are supported. See the Phone validation rule to validate a phone number which isn't limited to the Netherlands.

'field' => [new DutchPhone()],

DutchPostalCode#

Validates if the value is a valid Dutch zip code, like 1234AB.

'field' => [new DutchPostalCode()],

HostName#

Validates if the value contains a valid hostname, like example.com.

'field' => [new HostName()],

InternationalBankAccountNumber#

Validates if the value contains a valid IBAN.

'field' => [new InternationalBankAccountNumber()],

Interval#

Validates if the value is an interval, i.e. PT30S.

'field' => [new Interval()],

MaximumHourDifference#

Validates if the value is differing less then the provided amount of hours.

'field' => [new MaximumHourDifference($start, 10)];

Mime Type#

Validates if the value is a structural valid MIME.

'field' => [new MimeType()],

NotContains#

Validates if the value NOT contains a certain phrase.

'field' => [new NotContains($needle)],

Phone#

Validates if the value is a valid phone number.

'field' => [new Phone()],

Positive interval#

Validates if the value is an interval and the interval is positive.

'field' => [new PositiveInterval()],

Price#

Validates if the value is a valid price. The rule optionally accepts a specific decimal sign. When the decimal isn't provided it accepts both , or . signs.

'field' => [new Price()], // accepts both , and .
'field' => [new Price(',')], // accepts only ,

Secure url#

Validates if the value is a valid secure url, i.e. is a HTTPS url.

'field' => [new SecureUrl()],

Semver#

Validates if the value is a valid version according to the Semver standard.

'field' => [new Semver()],

VatNumber#

Validates if the value is a properly formatted VAT number.

'field' => [new VatNumber()],

Be aware: It doesn't check if the number is known in the VAT database. If you need to know the VAT number is truly legit, check with VIES.

VersionNumber#

Validates if the value is a valid version number. The rule accepts both x.y.z and x.y formats. The parameter requirePatch allows you to require the z part of the version number. This is useful for validation PHP version numbers for example.

'field' => [new VersionNumber(requirePatch: true)],

Contribution#

Any contribution is welcome, but it should be (unit) tested and meet the PSR-12 standard and please create one pull request per feature. In exchange, you will be credited as contributor on this page.

Security#

If you discover any security related issues in this or other packages of Vdhicts, please email security@vdhicts.nl instead of using the issue tracker.

License#

This package is open-sourced software licensed under the MIT license.