Skip to main content
Tutorial Free

40 Additional Laravel Validation Rules

June 04, 2019
3 min read

Laravel Validation system has 60+ validation rules available, but what if you want something extra? You can easily create your own validation rule, or use something already available on the internet. Let's take a look.

22 Rules from Alphametric

First, we start with a series of articles by Matt Kingshott, senior developer at Alphametric, he wrote quite a few posts on Medium and added all the rules into a Github repository. Here's the list of rules available there:

  • StrongPassword: checks for "strong" password
  • TelephoneNumber: valid telephone number
  • RecordOwner: Requires the authenticated user's id to match the user_id column on a given database record e.g. owner:posts,id
  • MonetaryFigure: monetary figure e.g $72.33
  • DisposableEmail: email address which is not disposable
  • DoesNotExist: value is not present in a given database table / column
  • Decimal: decimal with an appropriate format
  • EncodedImage: value is a base64-encoded image of a given mime type
  • LocationCoordinates: comma-separated set of latitude and longitude coordinates
  • FileExists: value is a path to an existing file
  • Equals: value is equal to another given value
  • MacAddress: value is a valid MAC address
  • ISBN: value is a valid ISBN-10 or ISBN-13 number
  • EndsWith: value ends with a given string
  • EvenNumber: value is an even number (decimals are first converted using intval)
  • OddNumber: value is an odd number (decimals are first converted using intval)
  • Lowercase: value is a lowercase string
  • Uppercase: value is a uppercase string
  • Titlecase: value is a titlecase string
  • Domain: value is a domain e.g. google.com, www.google.com
  • CitizenIdentification: value id a citizen identification number of USA, UK or France
  • WithoutWhitespace: value does not include any whitespace characters

8 Rules from Scott Robinson

Another good set of rules is made by Scott Robinson, who created a special website laravel-validation-rules.github.io. It has these rules:

  • Colour: Validates colours, currently supporting hex codes only.
  • Country Codes: Validates 2 & 3 character country codes.
  • Credit Card: This rule will validate that a given credit card number, expiration date or cvc is valid.
  • IP: Validates an ip address is either public or private. Supports ipv4 & ipv6.
  • Phone: Validates phone number format.
  • Subdomain: Validates a user submitted subdomain in your application.
  • Timezone: This rule will validate that a given timezone is valid within the systems datetime database.
  • US State: Validate US States and Canada Provinces.

5 Rules from Spatie

Our beloved Spatie team also have their own repository with a few rules:

  • Authorized: user is authorized to perform an ability on an instance of the given model.
  • CountryCode: field is a valid ISO3166 country code.
  • Enum: value is part of the given enum class, like myclabs/php-enum.
  • ModelsExist: all of the values in the input array exist as attributes for the given model class.
  • Delimited: string contains delimited values, like '[email protected], [email protected]'

5 Rules from Pineco.de

Finally, Gergő D. Nagy from Pineco.de has published an article in late 2017, with a set of validation rules and a repository. It has not been updated since then, so use with caution. Rules are:

  • Checking the user’s password
  • Odd or even numbers
  • Value can be incremented only
  • Value contains specific words
  • Day must be a weekday

Anything I've missed?

Enjoyed This Tutorial?

Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.

Recent Courses

Laravel Modules and DDD

16 lessons
1 h 59 min

PhpStorm Junie AI for Laravel Projects: Crash Course

7 lessons
36 min

Laravel HTTP Client and 3rd-Party APIs

7 lessons
50 min

Comments & Discussion

No comments yet…

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.