Laravel Persian Validation provides validation for Persian alphabet, number and etc.
- Laravel 5.*
- PHP 5.5 >=
Laravel Persian Validation is open-sourced software licensed under the MIT license
Via Composer
$ composer require Anetwork/Validation##Config
Add the following provider to providers part of config/app.php
Anetwork\Validation\PersianValidationServiceProvider::classYou can access to validation rules by passing the rules key according blew following table:
| Rules | Descriptions | 
|---|---|
| persian_alpha | Persian alphabet | 
| persian_num | Persian numbers | 
| persian_alpha_num | Persian alphabet and numbers | 
| iran_mobile | Iran mobile numbers | 
| sheba | Iran Sheba numbers | 
| melli_code | Iran melli code | 
| is_not_persian | Doesn't accept Persian alphabet and numbers | 
| limited_array | Checked variable is array and array must be lesser and equal than parameter | 
| unsigned_num | Checked variable is unsigned numbers | 
| alpha_space | Accept Persian, English and ... alphabet, space character | 
| a_url | Checked correct URL | 
| a_domain | Checked correct Domain | 
| more | Checked value be max and not equal too | 
| less | Checked value be min and not equal too | 
| iran_phone | Iran phone numbers | 
| card_number | Payment card numbers | 
| address | Accept Persian, English and ... alphabet, Persian and English numbers and some special characters | 
Accept Persian language alphabet according to standard Persian, this is the way you can use this validation rule:
$input = [ 'فارسی' ];
$rules = [ 'persian_alpha' ];
Validator::make( $input, $rules );
Validate Persian standard numbers (۰۱۲۳۴۵۶۷۸۹):
$input = [ '۰۱۲۳۴۵۶۷۸۹' ];
$rules = [ 'persian_num' ];
Validator::make( $input, $rules );
Validate Persian alpha num:
$input = [ 'فارسی۱۲۳۴۵۶۷۸۹' ];
$rules = [ 'persian_alpha_num' ];
Validator::make( $input, $rules );
Validate Iran mobile phones (irancel, rightel, hamrah-e-aval, ...):
$input = [ '09381234567' ];
$rules = [ 'iran_mobile' ];
Validator::make( $input, $rules );
Validate iranian bank sheba numbers:
$input = [ 'IR062960000000100324200001' ];
$rules = [ 'sheba' ];
Validator::make( $input, $rules );
Validate iran's national code (melli-code):
$input = [ '3240175800' ];
$rules = [ 'melli_code' ];
Validator::make( $input, $rules );
Validate iranian payment card numbers:
$input = [ '6274129005473742' ];
$rules = [ 'card_number' ];
Validator::make( $input, $rules );
Here is full list of Anetwork validation rules usage:
Validator::make( $request->all(), [
  'name'          => 'persian_alpha|unique|max:25', // Validate Persian alphabet, unique and max to 25 characters
  'age'           => 'persian_num|required',  // Validate Persian numbers and check it's required
  'city'          => 'persian_alpha_num|min:10',  // Validate persian alphabet & numbers at least 10 digit accepted
  'mobile'        => 'iran_mobile', // Validate mobile number
  'sheba_number'  => 'sheba', // Validate sheba number of bank account
  'melli_code'    => 'melli_code',  // Validate melli code number
  'latin_name'    => 'is_not_persian',  // Validate alphabet and doesn't contain Persian alphabet or number
  'your_array'    => 'limited_array:2', // Validate your array variable and must be contian 2 member or lesser
  'url'           => 'a_url', // Validate url
  'domain'        => 'a_domain',  // Validate domain
  'more'          => 'more:10', // Validate value be more than parameter
  'less'          => 'less:10', // Validate value be less than parameter
  'phone'         => 'iran_phone', // Validate phone number
  'card_number'   => 'card_number', // Validate payment card number
  'address'       => 'address' // validate Persian, English and ... alphabet, Persian and English numbers and some special characters
]);