/laravel-persian-validation

A persian alphabet, number and etc. validation package for laravel

Primary LanguagePHPMIT LicenseMIT

Laravel Persian Validation

Laravel Persian Validation Provides validation for Persian alphabet, number and etc.

Requirement

  • Laravel 6, 7, 8, 9
  • PHP 7.4 , 8

Install

Via Composer

composer require sadegh19b/laravel-persian-validation

vendor:publish

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"

Usage

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

Persian Alpha

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 );

Persian numbers

Validate Persian standard numbers (۰۱۲۳۴۵۶۷۸۹):

$input = [ '۰۱۲۳۴۵۶۷۸۹' ];

$rules = [ 'persian_num' ];

Validator::make( $input, $rules );

Persian Alpha Num

Validate Persian alpha num:

$input = [ '۰فارسی۱۲۳۴۵۶۷۸۹' ];

$rules = [ 'persian_alpha_num' ];

Validator::make( $input, $rules );

Persian Alpha Eng Num

Validate Persian alpha num with english num:

$input = [ '۰فارسی۱۲۳۴۵6789' ];

$rules = [ 'persian_alpha_eng_num' ];

Validator::make( $input, $rules );

Shamsi Date

Validate shamsi (jalali) date:

$input = [ '1373/3/19' ];

$rules = [ 'shamsi_date' ];

Validator::make( $input, $rules );

Shamsi Date Between

Validate shamsi (jalali) date between years:

$input = [ '1373/3/19' ];

$rules = [ 'shamsi_date_between:1300,1400' ];

Validator::make( $input, $rules );

Iran mobile phone

Validate Iranian mobile numbers (Irancell, Rightel, Hamrah-e-aval, ...):

$input = [ '09381234567' ];

$rules = [ 'ir_mobile' ];

Validator::make( $input, $rules );

Sheba number

Validate Iranian bank sheba numbers:

$input = [ 'IR062960000000100324200001' ];

$rules = [ 'ir_sheba' ];

Validator::make( $input, $rules );

Iran national code

Validate Iranian national code (Melli Code):

$input = [ '3240175800' ];

$rules = [ 'ir_national_code' ];

Validator::make( $input, $rules );

Payment card number

Validate Iranian bank payment card numbers:

$input = [ '6274129005473742' ];

$rules = [ 'ir_bank_card_number' ];

Validator::make( $input, $rules );

Iran postal code

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 );

More

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

]);

License

The MIT license (MIT). Please see License File for more information.