Skip to content

Commit 64c50ba

Browse files
authored
Merge pull request #2 from vahidkaargar/dev
Support 18 countries for landline validations
2 parents c3eb085 + b4b6f19 commit 64c50ba

17 files changed

+258
-1
lines changed

config/laravel-validate.php

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,25 @@
1818
use Milwad\LaravelValidate\Utils\CountryPhoneValidator\SEPhoneValidator;
1919
use Milwad\LaravelValidate\Utils\CountryPhoneValidator\TRPhoneValidator;
2020
use Milwad\LaravelValidate\Utils\CountryPhoneValidator\ZHPhoneValidator;
21-
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\IRLandlineValidator;
21+
22+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\CMLandlineValidator;
2223
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\DELandlineValidator;
24+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\ENLandlineValidator;
25+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\ESLandlineValidator;
26+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\FRLandlineValidator;
27+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\GRLandlineValidator;
28+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\IDLandlineValidator;
29+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\INLandlineValidator;
30+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\IRLandlineValidator;
31+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\ITLandlineValidator;
32+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\JALandlineValidator;
33+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\KOLandlineValidator;
34+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\NELandlineValidator;
35+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\RULandlineValidator;
36+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\SALandlineValidator;
37+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\SELandlineValidator;
38+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\TRLandlineValidator;
39+
use \Milwad\LaravelValidate\Utils\CountryLandlineValidator\ZHLandlineValidator;
2340

2441
return [
2542
/*
@@ -56,8 +73,24 @@
5673
* You can add custom country landline validator.
5774
*/
5875
'landline-country' => [
76+
'CM' => CMLandlineValidator::class, // Cameroon
5977
'DE' => DELandlineValidator::class, // Germany
78+
'EN' => ENLandlineValidator::class, // England
79+
'ES' => ESLandlineValidator::class, // Spain
80+
'FR' => FRLandlineValidator::class, // France
81+
'GR' => GRLandlineValidator::class, // Greece
82+
'ID' => IDLandlineValidator::class, // Indonesia
83+
'IN' => INLandlineValidator::class, // India
6084
'IR' => IRLandlineValidator::class, // Iran
85+
'IT' => ITLandlineValidator::class, // Italy
86+
'JA' => JALandlineValidator::class, // Japan
87+
'KO' => KOLandlineValidator::class, // South Korea
88+
'NE' => NELandlineValidator::class, // Netherlands
89+
'RU' => RULandlineValidator::class, // Russia
90+
'SA' => SALandlineValidator::class, // Saudi Arabia
91+
'SE' => SELandlineValidator::class, // Sweden
92+
'TR' => TRLandlineValidator::class, // Turkey
93+
'ZH' => ZHLandlineValidator::class, // China
6194
],
6295

6396
/*
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Milwad\LaravelValidate\Utils\CountryLandlineValidator;
4+
5+
class CMLandlineValidator implements CountryLandlineValidator
6+
{
7+
/**
8+
* Validate Cameroon landline numbers.
9+
*/
10+
public function validate($value): bool
11+
{
12+
return preg_match('/^(?:(?:\+237|00237)[\s-]?2\d{8}|2\d{8})$/', $value);
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Milwad\LaravelValidate\Utils\CountryLandlineValidator;
4+
5+
class ENLandlineValidator implements CountryLandlineValidator
6+
{
7+
/**
8+
* Validate England landline numbers.
9+
*/
10+
public function validate($value): bool
11+
{
12+
return preg_match('/^(?:(?:\+44|0044)\s?(?:1\d{9}|2\d{9})|0(?:1\d{9}|2\d{9}))$/', $value);
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Milwad\LaravelValidate\Utils\CountryLandlineValidator;
4+
5+
class ESLandlineValidator implements CountryLandlineValidator
6+
{
7+
/**
8+
* Validate Spain landline numbers.
9+
*/
10+
public function validate($value): bool
11+
{
12+
return preg_match('/^(?:(?:\+34|0034)?\s?[89]\d{8})$/', $value);
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Milwad\LaravelValidate\Utils\CountryLandlineValidator;
4+
5+
class FRLandlineValidator implements CountryLandlineValidator
6+
{
7+
/**
8+
* Validate France landline numbers.
9+
*/
10+
public function validate($value): bool
11+
{
12+
return preg_match('/^(?:(?:\+33|0033)\s?[1-5]\d{8}|0[1-5]\d{8})$/', $value);
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Milwad\LaravelValidate\Utils\CountryLandlineValidator;
4+
5+
class GRLandlineValidator implements CountryLandlineValidator
6+
{
7+
/**
8+
* Validate Greece landline numbers.
9+
*/
10+
public function validate($value): bool
11+
{
12+
return preg_match('/^(?:(?:\+30|0030)\s?[2]\d{9}|0[2]\d{9})$/', $value);
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Milwad\LaravelValidate\Utils\CountryLandlineValidator;
4+
5+
class IDLandlineValidator implements CountryLandlineValidator
6+
{
7+
/**
8+
* Validate Indonesia landline numbers.
9+
*/
10+
public function validate($value): bool
11+
{
12+
return preg_match('/^(?:(?:\+62|0062)[\s\-]?21\d{7,8}|(?:\+62|0062)[\s\-]?[2-9]\d{1,3}\d{5,8}|0[2-9]\d{1,3}\d{5,8})$/', $value);
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Milwad\LaravelValidate\Utils\CountryLandlineValidator;
4+
5+
class INLandlineValidator implements CountryLandlineValidator
6+
{
7+
/**
8+
* Validate India landline numbers.
9+
*/
10+
public function validate($value): bool
11+
{
12+
return preg_match('/^(?:(?:\+91|0091)[\s\-]?0?[1-6]\d{1,4}\d{6,8}|0[1-6]\d{1,4}\d{6,8})$/', $value);
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Milwad\LaravelValidate\Utils\CountryLandlineValidator;
4+
5+
class ITLandlineValidator implements CountryLandlineValidator
6+
{
7+
/**
8+
* Validate Italy landline numbers.
9+
*/
10+
public function validate($value): bool
11+
{
12+
return preg_match('/^(?:(?:\+39|0039)[\s\-]?0\d{5,10}|0\d{5,10})$/', $value);
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Milwad\LaravelValidate\Utils\CountryLandlineValidator;
4+
5+
class JALandlineValidator implements CountryLandlineValidator
6+
{
7+
/**
8+
* Validate Japan landline numbers.
9+
*/
10+
public function validate($value): bool
11+
{
12+
return preg_match('/^(?:(?:\+81|0081)[\s\-]?0?[1-9]\d{1,3}\d{4,6}|0[1-9]\d{1,3}\d{4,6})$/', $value);
13+
}
14+
}

0 commit comments

Comments
 (0)