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
- 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
- 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@example.com, firstname.lastname@example.org'
5 Rules from Pineco.de
- 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?