Laravel Persian Validation Provides validation for Persian alphabet, number and etc.
- Laravel 6, 7, 8, 9
- PHP 7.4 , 8
Via Composer
composer require sadegh19b/laravel-persian-validation
You can run vendor:publish command to have custom lang file of package on this path ( resources/lang/{locale}/persian-validation.php )
php artisan vendor:publish --provider="Sadegh19b\LaravelPersianValidation\PersianValidationServiceProvider"
You can access to validation rules by passing the rules key according blew following table:
Rules | Descriptions | Acceptable Examples |
---|---|---|
persian_alpha | Persian alphabet | صادق |
persian_num | Persian numbers | ۱۲۳۴ |
persian_alpha_num | Persian alphabet and numbers | صادق۱۲۳۴ |
persian_alpha_eng_num | Persian alphabet and numbers with english numbers | صادق۱۲34 |
persian_not_accept | Doesn't accept Persian alphabet and numbers | cant be persian |
shamsi_date | Check shamsi (jalali) date with format(Y/m/d) or format(Y-m-d) | 1373/3/19 |
shamsi_date:persian | Check shamsi (jalali) date with format(Y/m/d) or format(Y-m-d) with persian number | ۱۳۷۳/۳/۱۹ |
shamsi_date_between:1300,1400 | Check shamsi (jalali) date with format(Y/m/d) or format(Y-m-d) between years | 1373/3/19 |
shamsi_date_between:1300,1400,persian | Check shamsi (jalali) date with format(Y/m/d) or format(Y-m-d) between years with persian number | ۱۳۷۳/۳/۱۹ |
ir_mobile | Iranian mobile numbers | 00989173456789, +989173456789, 989173456789, 09173456789, 91712345678 |
ir_mobile:zero_code | Iranian mobile numbers with double zero country code | 00989173456789 |
ir_mobile:plus | Iranian mobile numbers with plus country code | +989173456789 |
ir_mobile:code | Iranian mobile numbers with country code | 989173456789 |
ir_mobile:zero | Iranian mobile numbers starts with zero | 09173456789 |
ir_mobile:without_zero | Iranian mobile numbers without first zero | 9173456789 |
ir_phone | Iranian phone numbers | 37236445 |
ir_phone_code | Iranian phone area code | 077, 021, ... |
ir_phone_with_code | Iranian phone number with area code | 07737236445 |
ir_postal_code | Iranian postal code | 1619735744, 16197-35744 |
ir_postal_code:seprate | Iranian postal code sperated | 16197-35744 |
ir_postal_code:without_seprate | Iranian postal code without seprate | 1619735744 |
ir_bank_card_number | Iranian bank payment card numbers | 6274129005473742 |
ir_bank_card_number:seprate | Iranian bank payment card numbers seprate between digits with dash | 6274-1290-0547-3742 |
ir_bank_card_number:space | Iranian bank payment card numbers seprate between digits with space | 6274 1290 0547 3742 |
ir_sheba | Iranian Sheba numbers | IR062960000000100324200001 |
ir_national_code | Iran melli code | 0013542419 |
a_url | Check correct URL | http://google.com, https://www.google.com |
a_domain | Check correct Domain | www.google.com, google.com |
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 Persian alpha num with english num:
$input = [ '۰فارسی۱۲۳۴۵6789' ];
$rules = [ 'persian_alpha_eng_num' ];
Validator::make( $input, $rules );
Validate shamsi (jalali) date:
$input = [ '1373/3/19' ];
$rules = [ 'shamsi_date' ];
Validator::make( $input, $rules );
Validate shamsi (jalali) date between years:
$input = [ '1373/3/19' ];
$rules = [ 'shamsi_date_between:1300,1400' ];
Validator::make( $input, $rules );
Validate Iranian mobile numbers (Irancell, Rightel, Hamrah-e-aval, ...):
$input = [ '09381234567' ];
$rules = [ 'ir_mobile' ];
Validator::make( $input, $rules );
Validate Iranian bank sheba numbers:
$input = [ 'IR062960000000100324200001' ];
$rules = [ 'ir_sheba' ];
Validator::make( $input, $rules );
Validate Iranian national code (Melli Code):
$input = [ '3240175800' ];
$rules = [ 'ir_national_code' ];
Validator::make( $input, $rules );
Validate Iranian bank payment card numbers:
$input = [ '6274129005473742' ];
$rules = [ 'ir_bank_card_number' ];
Validator::make( $input, $rules );
Validate Iranian postal code:
$input = [ '167197-35744' ];
$rules = [ 'ir_postal_code' ];
Validator::make( $input, $rules );
or
$input = [ '16719735744' ];
$rules = [ 'ir_postal_code' ];
Validator::make( $input, $rules );
Full list of Persian 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
'address' => 'persian_alpha_eng_num', // Validate persian alphabet & numbers with english numbers
'birthday' => 'shamsi_date', // Validate shamsi date
'start_date' => 'shamsi_date_between:1300,1400', // Validate shamsi date between years
'mobile' => 'ir_mobile', // Validate mobile number
'sheba_number' => 'ir_sheba', // Validate sheba number of bank account
'melli_code' => 'ir_national_code', // Validate melli code number
'latin_name' => 'persian_not_accept', // Validate alphabet and doesn't contain Persian alphabet or number
'url' => 'a_url', // Validate url
'domain' => 'a_domain', // Validate domain
'phone' => 'ir_phone', // Validate phone number
'area_code' => 'ir_phone_code', // Validate phone area code
'phone_code' => 'ir_phone_with_code', // Validate phone number with area code
'card_number' => 'ir_bank_card_number', // Validate payment card number
'postal_code' => 'ir_postal_code' // validate iran postal code format
]);
The MIT license (MIT). Please see License File for more information.