MDL-86459 libraries: Upgrade libphonenumber-for-php-lite to 9.0.12
This commit is contained in:
@@ -36,7 +36,7 @@ You can also use any other [PSR-4](http://www.php-fig.org/psr/psr-4/) compliant
|
||||
|
||||
### PHP Version Policy
|
||||
|
||||
This library will be updated to use [supported versions of PHP](https://www.php.net/supported-versions.php) only. At the moment, the main [giggsey/libphonenumber-for-php](https://github.com/giggsey/libphonenumber-for-php) library supports older PHP versions.
|
||||
This library will be updated to use [supported versions of PHP](https://www.php.net/supported-versions.php) only.
|
||||
|
||||
## Documentation
|
||||
|
||||
@@ -135,12 +135,12 @@ If [giggsey/libphonenumber-for-php](https://github.com/giggsey/libphonenumber-fo
|
||||
|
||||
## Generating data
|
||||
|
||||
Generating the data is not normally needed, as this repository will generally always have the up to data metadata.
|
||||
Generating the data is not normally needed, as this repository will generally always have the up to date metadata.
|
||||
|
||||
If you do need to generate the data, the commands are provided by [Phing](https://www.phing.info). Ensure you have all the dev composer dependencies installed, then run
|
||||
To compile the data, run the composer script 'build'
|
||||
|
||||
```bash
|
||||
$ vendor/bin/phing compile
|
||||
composer run build
|
||||
```
|
||||
|
||||
This compile task clones the [libphonenumber](https://github.com/google/libphonenumber) project at the version specified in [METADATA-VERSION.php](METADATA-VERSION.php).
|
||||
This build process clones the [libphonenumber](https://github.com/google/libphonenumber) project at the version specified in [METADATA-VERSION.php](METADATA-VERSION.php).
|
||||
|
||||
@@ -26,14 +26,7 @@
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"libphonenumber\\": "src/"
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/src/data/",
|
||||
"/src/carrier/data/",
|
||||
"/src/geocoding/data/",
|
||||
"/src/timezone/data/"
|
||||
]
|
||||
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
@@ -64,18 +57,19 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-dom": "*",
|
||||
"friendsofphp/php-cs-fixer": "^3.12",
|
||||
"infection/infection": "^0.28",
|
||||
"pear/pear-core-minimal": "^1.10.11",
|
||||
"pear/pear_exception": "^1.0.2",
|
||||
"pear/versioncontrol_git": "^0.7",
|
||||
"phing/phing": "^2.17.4",
|
||||
"phpstan/extension-installer": "^1.2",
|
||||
"phpstan/phpstan": "^1.8",
|
||||
"phpstan/phpstan-phpunit": "^1.2",
|
||||
"phpunit/phpunit": "^10.5",
|
||||
"symfony/console": "^6.0",
|
||||
"symfony/var-exporter": "^6.0"
|
||||
"friendsofphp/php-cs-fixer": "^3.71",
|
||||
"infection/infection": "^0.29|^0.31.0",
|
||||
"nette/php-generator": "^4.1",
|
||||
"php-coveralls/php-coveralls": "^2.7",
|
||||
"phpstan/extension-installer": "^1.4.3",
|
||||
"phpstan/phpstan": "^2.1.7",
|
||||
"phpstan/phpstan-deprecation-rules": "^2.0.1",
|
||||
"phpstan/phpstan-phpunit": "^2.0.4",
|
||||
"phpstan/phpstan-strict-rules": "^2.0.3",
|
||||
"phpunit/phpunit": "^10.5.45",
|
||||
"symfony/console": "^6.4",
|
||||
"symfony/filesystem": "^6.4",
|
||||
"symfony/process": "^6.4"
|
||||
},
|
||||
"conflict": {
|
||||
"giggsey/libphonenumber-for-php": "*"
|
||||
@@ -85,14 +79,20 @@
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "8.x-dev"
|
||||
"dev-master": "9.x-dev"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"cs": "vendor/bin/php-cs-fixer fix",
|
||||
"phpstan": "vendor/bin/phpstan",
|
||||
"test": "vendor/bin/phpunit",
|
||||
"metadata": "vendor/bin/phing compile"
|
||||
"metadata": "@php build/build.php build",
|
||||
"build": [
|
||||
"@metadata",
|
||||
"@cs",
|
||||
"@test",
|
||||
"@phpstan"
|
||||
]
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true,
|
||||
|
||||
@@ -10,11 +10,11 @@ cd "$installdir" || exit
|
||||
composer require giggsey/libphonenumber-for-php-lite
|
||||
|
||||
cd - || exit
|
||||
rm -rf lib/giggsey/libphonenumber-for-php-lite/src
|
||||
cp -rf "$installdir"/vendor/giggsey/libphonenumber-for-php-lite/src lib/giggsey/libphonenumber-for-php-lite/src
|
||||
cp -rf "$installdir"/vendor/giggsey/libphonenumber-for-php-lite/{composer.json,LICENSE.txt,README.md} lib/giggsey/libphonenumber-for-php-lite
|
||||
rm -rf public/lib/giggsey/libphonenumber-for-php-lite/src
|
||||
cp -rf "$installdir"/vendor/giggsey/libphonenumber-for-php-lite/src public/lib/giggsey/libphonenumber-for-php-lite/src
|
||||
cp -rf "$installdir"/vendor/giggsey/libphonenumber-for-php-lite/{composer.json,LICENSE.txt,README.md} public/lib/giggsey/libphonenumber-for-php-lite
|
||||
|
||||
git add lib/giggsey/libphonenumber-for-php-lite
|
||||
git add public/lib/giggsey/libphonenumber-for-php-lite
|
||||
|
||||
rm -rf "$installdir"
|
||||
```
|
||||
|
||||
@@ -1,34 +1,36 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
/**
|
||||
* Country code source from number
|
||||
*/
|
||||
class CountryCodeSource
|
||||
enum CountryCodeSource: int
|
||||
{
|
||||
/**
|
||||
* The country_code is derived based on a phone number with a leading "+", e.g. the French
|
||||
* number "+33 1 42 68 53 00".
|
||||
*/
|
||||
public const FROM_NUMBER_WITH_PLUS_SIGN = 0;
|
||||
case FROM_NUMBER_WITH_PLUS_SIGN = 0;
|
||||
/**
|
||||
* The country_code is derived based on a phone number with a leading IDD, e.g. the French
|
||||
* number "011 33 1 42 68 53 00", as it is dialled from US.
|
||||
*/
|
||||
public const FROM_NUMBER_WITH_IDD = 1;
|
||||
case FROM_NUMBER_WITH_IDD = 1;
|
||||
/**
|
||||
* The country_code is derived based on a phone number without a leading "+", e.g. the French
|
||||
* number "33 1 42 68 53 00" when defaultCountry is supplied as France.
|
||||
*/
|
||||
public const FROM_NUMBER_WITHOUT_PLUS_SIGN = 2;
|
||||
case FROM_NUMBER_WITHOUT_PLUS_SIGN = 2;
|
||||
/**
|
||||
* The country_code is derived NOT based on the phone number itself, but from the defaultCountry
|
||||
* parameter provided in the parsing function by the clients. This happens mostly for numbers
|
||||
* written in the national format (without country code). For example, this would be set when
|
||||
* parsing the French number "01 42 68 53 00", when defaultCountry is supplied as France.
|
||||
*/
|
||||
public const FROM_DEFAULT_COUNTRY = 3;
|
||||
case FROM_DEFAULT_COUNTRY = 3;
|
||||
|
||||
public const UNSPECIFIED = 4;
|
||||
case UNSPECIFIED = 4;
|
||||
}
|
||||
|
||||
+226
-663
@@ -7,15 +7,22 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class CountryCodeToRegionCodeMap
|
||||
{
|
||||
// A mapping from a country code to the region codes which denote the
|
||||
// country/region represented by that country code. In the case of multiple
|
||||
// countries sharing a calling code, such as the NANPA countries, the one
|
||||
// indicated with "isMainCountryForCode" in the metadata should be first.
|
||||
|
||||
/**
|
||||
* A mapping from a country code to the region codes which denote the
|
||||
* country/region represented by that country code. In the case of multiple
|
||||
* countries sharing a calling code, such as the NANPA countries, the one
|
||||
* indicated with "isMainCountryForCode" in the metadata should be first.
|
||||
* @var array<int,string[]>
|
||||
*/
|
||||
public const COUNTRY_CODE_TO_REGION_CODE_MAP = [
|
||||
1 => [
|
||||
'US',
|
||||
@@ -44,663 +51,219 @@ class CountryCodeToRegionCodeMap
|
||||
'VG',
|
||||
'VI',
|
||||
],
|
||||
7 => [
|
||||
'RU',
|
||||
'KZ',
|
||||
],
|
||||
20 => [
|
||||
'EG',
|
||||
],
|
||||
27 => [
|
||||
'ZA',
|
||||
],
|
||||
30 => [
|
||||
'GR',
|
||||
],
|
||||
[
|
||||
'NL',
|
||||
],
|
||||
[
|
||||
'BE',
|
||||
],
|
||||
[
|
||||
'FR',
|
||||
],
|
||||
[
|
||||
'ES',
|
||||
],
|
||||
36 => [
|
||||
'HU',
|
||||
],
|
||||
39 => [
|
||||
'IT',
|
||||
'VA',
|
||||
],
|
||||
[
|
||||
'RO',
|
||||
],
|
||||
[
|
||||
'CH',
|
||||
],
|
||||
43 => [
|
||||
'AT',
|
||||
],
|
||||
[
|
||||
'GB',
|
||||
'GG',
|
||||
'IM',
|
||||
'JE',
|
||||
],
|
||||
[
|
||||
'DK',
|
||||
],
|
||||
[
|
||||
'SE',
|
||||
],
|
||||
[
|
||||
'NO',
|
||||
'SJ',
|
||||
],
|
||||
[
|
||||
'PL',
|
||||
],
|
||||
[
|
||||
'DE',
|
||||
],
|
||||
51 => [
|
||||
'PE',
|
||||
],
|
||||
[
|
||||
'MX',
|
||||
],
|
||||
[
|
||||
'CU',
|
||||
],
|
||||
[
|
||||
'AR',
|
||||
],
|
||||
[
|
||||
'BR',
|
||||
],
|
||||
[
|
||||
'CL',
|
||||
],
|
||||
[
|
||||
'CO',
|
||||
],
|
||||
[
|
||||
'VE',
|
||||
],
|
||||
60 => [
|
||||
'MY',
|
||||
],
|
||||
[
|
||||
'AU',
|
||||
'CC',
|
||||
'CX',
|
||||
],
|
||||
[
|
||||
'ID',
|
||||
],
|
||||
[
|
||||
'PH',
|
||||
],
|
||||
[
|
||||
'NZ',
|
||||
],
|
||||
[
|
||||
'SG',
|
||||
],
|
||||
[
|
||||
'TH',
|
||||
],
|
||||
81 => [
|
||||
'JP',
|
||||
],
|
||||
[
|
||||
'KR',
|
||||
],
|
||||
84 => [
|
||||
'VN',
|
||||
],
|
||||
86 => [
|
||||
'CN',
|
||||
],
|
||||
90 => [
|
||||
'TR',
|
||||
],
|
||||
[
|
||||
'IN',
|
||||
],
|
||||
[
|
||||
'PK',
|
||||
],
|
||||
[
|
||||
'AF',
|
||||
],
|
||||
[
|
||||
'LK',
|
||||
],
|
||||
[
|
||||
'MM',
|
||||
],
|
||||
98 => [
|
||||
'IR',
|
||||
],
|
||||
211 => [
|
||||
'SS',
|
||||
],
|
||||
[
|
||||
'MA',
|
||||
'EH',
|
||||
],
|
||||
[
|
||||
'DZ',
|
||||
],
|
||||
216 => [
|
||||
'TN',
|
||||
],
|
||||
218 => [
|
||||
'LY',
|
||||
],
|
||||
220 => [
|
||||
'GM',
|
||||
],
|
||||
[
|
||||
'SN',
|
||||
],
|
||||
[
|
||||
'MR',
|
||||
],
|
||||
[
|
||||
'ML',
|
||||
],
|
||||
[
|
||||
'GN',
|
||||
],
|
||||
[
|
||||
'CI',
|
||||
],
|
||||
[
|
||||
'BF',
|
||||
],
|
||||
[
|
||||
'NE',
|
||||
],
|
||||
[
|
||||
'TG',
|
||||
],
|
||||
[
|
||||
'BJ',
|
||||
],
|
||||
[
|
||||
'MU',
|
||||
],
|
||||
[
|
||||
'LR',
|
||||
],
|
||||
[
|
||||
'SL',
|
||||
],
|
||||
[
|
||||
'GH',
|
||||
],
|
||||
[
|
||||
'NG',
|
||||
],
|
||||
[
|
||||
'TD',
|
||||
],
|
||||
[
|
||||
'CF',
|
||||
],
|
||||
[
|
||||
'CM',
|
||||
],
|
||||
[
|
||||
'CV',
|
||||
],
|
||||
[
|
||||
'ST',
|
||||
],
|
||||
[
|
||||
'GQ',
|
||||
],
|
||||
[
|
||||
'GA',
|
||||
],
|
||||
[
|
||||
'CG',
|
||||
],
|
||||
[
|
||||
'CD',
|
||||
],
|
||||
[
|
||||
'AO',
|
||||
],
|
||||
[
|
||||
'GW',
|
||||
],
|
||||
[
|
||||
'IO',
|
||||
],
|
||||
[
|
||||
'AC',
|
||||
],
|
||||
[
|
||||
'SC',
|
||||
],
|
||||
[
|
||||
'SD',
|
||||
],
|
||||
[
|
||||
'RW',
|
||||
],
|
||||
[
|
||||
'ET',
|
||||
],
|
||||
[
|
||||
'SO',
|
||||
],
|
||||
[
|
||||
'DJ',
|
||||
],
|
||||
[
|
||||
'KE',
|
||||
],
|
||||
[
|
||||
'TZ',
|
||||
],
|
||||
[
|
||||
'UG',
|
||||
],
|
||||
[
|
||||
'BI',
|
||||
],
|
||||
[
|
||||
'MZ',
|
||||
],
|
||||
260 => [
|
||||
'ZM',
|
||||
],
|
||||
[
|
||||
'MG',
|
||||
],
|
||||
[
|
||||
'RE',
|
||||
'YT',
|
||||
],
|
||||
[
|
||||
'ZW',
|
||||
],
|
||||
[
|
||||
'NA',
|
||||
],
|
||||
[
|
||||
'MW',
|
||||
],
|
||||
[
|
||||
'LS',
|
||||
],
|
||||
[
|
||||
'BW',
|
||||
],
|
||||
[
|
||||
'SZ',
|
||||
],
|
||||
[
|
||||
'KM',
|
||||
],
|
||||
290 => [
|
||||
'SH',
|
||||
'TA',
|
||||
],
|
||||
[
|
||||
'ER',
|
||||
],
|
||||
297 => [
|
||||
'AW',
|
||||
],
|
||||
[
|
||||
'FO',
|
||||
],
|
||||
[
|
||||
'GL',
|
||||
],
|
||||
350 => [
|
||||
'GI',
|
||||
],
|
||||
[
|
||||
'PT',
|
||||
],
|
||||
[
|
||||
'LU',
|
||||
],
|
||||
[
|
||||
'IE',
|
||||
],
|
||||
[
|
||||
'IS',
|
||||
],
|
||||
[
|
||||
'AL',
|
||||
],
|
||||
[
|
||||
'MT',
|
||||
],
|
||||
[
|
||||
'CY',
|
||||
],
|
||||
[
|
||||
'FI',
|
||||
'AX',
|
||||
],
|
||||
[
|
||||
'BG',
|
||||
],
|
||||
370 => [
|
||||
'LT',
|
||||
],
|
||||
[
|
||||
'LV',
|
||||
],
|
||||
[
|
||||
'EE',
|
||||
],
|
||||
[
|
||||
'MD',
|
||||
],
|
||||
[
|
||||
'AM',
|
||||
],
|
||||
[
|
||||
'BY',
|
||||
],
|
||||
[
|
||||
'AD',
|
||||
],
|
||||
[
|
||||
'MC',
|
||||
],
|
||||
[
|
||||
'SM',
|
||||
],
|
||||
380 => [
|
||||
'UA',
|
||||
],
|
||||
[
|
||||
'RS',
|
||||
],
|
||||
[
|
||||
'ME',
|
||||
],
|
||||
[
|
||||
'XK',
|
||||
],
|
||||
385 => [
|
||||
'HR',
|
||||
],
|
||||
[
|
||||
'SI',
|
||||
],
|
||||
[
|
||||
'BA',
|
||||
],
|
||||
389 => [
|
||||
'MK',
|
||||
],
|
||||
420 => [
|
||||
'CZ',
|
||||
],
|
||||
[
|
||||
'SK',
|
||||
],
|
||||
423 => [
|
||||
'LI',
|
||||
],
|
||||
500 => [
|
||||
'FK',
|
||||
],
|
||||
[
|
||||
'BZ',
|
||||
],
|
||||
[
|
||||
'GT',
|
||||
],
|
||||
[
|
||||
'SV',
|
||||
],
|
||||
[
|
||||
'HN',
|
||||
],
|
||||
[
|
||||
'NI',
|
||||
],
|
||||
[
|
||||
'CR',
|
||||
],
|
||||
[
|
||||
'PA',
|
||||
],
|
||||
[
|
||||
'PM',
|
||||
],
|
||||
[
|
||||
'HT',
|
||||
],
|
||||
590 => [
|
||||
'GP',
|
||||
'BL',
|
||||
'MF',
|
||||
],
|
||||
[
|
||||
'BO',
|
||||
],
|
||||
[
|
||||
'GY',
|
||||
],
|
||||
[
|
||||
'EC',
|
||||
],
|
||||
[
|
||||
'GF',
|
||||
],
|
||||
[
|
||||
'PY',
|
||||
],
|
||||
[
|
||||
'MQ',
|
||||
],
|
||||
[
|
||||
'SR',
|
||||
],
|
||||
[
|
||||
'UY',
|
||||
],
|
||||
[
|
||||
'CW',
|
||||
'BQ',
|
||||
],
|
||||
670 => [
|
||||
'TL',
|
||||
],
|
||||
672 => [
|
||||
'NF',
|
||||
],
|
||||
[
|
||||
'BN',
|
||||
],
|
||||
[
|
||||
'NR',
|
||||
],
|
||||
[
|
||||
'PG',
|
||||
],
|
||||
[
|
||||
'TO',
|
||||
],
|
||||
[
|
||||
'SB',
|
||||
],
|
||||
[
|
||||
'VU',
|
||||
],
|
||||
[
|
||||
'FJ',
|
||||
],
|
||||
[
|
||||
'PW',
|
||||
],
|
||||
[
|
||||
'WF',
|
||||
],
|
||||
[
|
||||
'CK',
|
||||
],
|
||||
[
|
||||
'NU',
|
||||
],
|
||||
685 => [
|
||||
'WS',
|
||||
],
|
||||
[
|
||||
'KI',
|
||||
],
|
||||
[
|
||||
'NC',
|
||||
],
|
||||
[
|
||||
'TV',
|
||||
],
|
||||
[
|
||||
'PF',
|
||||
],
|
||||
[
|
||||
'TK',
|
||||
],
|
||||
[
|
||||
'FM',
|
||||
],
|
||||
[
|
||||
'MH',
|
||||
],
|
||||
800 => [
|
||||
'001',
|
||||
],
|
||||
808 => [
|
||||
'001',
|
||||
],
|
||||
850 => [
|
||||
'KP',
|
||||
],
|
||||
852 => [
|
||||
'HK',
|
||||
],
|
||||
[
|
||||
'MO',
|
||||
],
|
||||
855 => [
|
||||
'KH',
|
||||
],
|
||||
[
|
||||
'LA',
|
||||
],
|
||||
870 => [
|
||||
'001',
|
||||
],
|
||||
878 => [
|
||||
'001',
|
||||
],
|
||||
880 => [
|
||||
'BD',
|
||||
],
|
||||
[
|
||||
'001',
|
||||
],
|
||||
[
|
||||
'001',
|
||||
],
|
||||
[
|
||||
'001',
|
||||
],
|
||||
886 => [
|
||||
'TW',
|
||||
],
|
||||
888 => [
|
||||
'001',
|
||||
],
|
||||
960 => [
|
||||
'MV',
|
||||
],
|
||||
[
|
||||
'LB',
|
||||
],
|
||||
[
|
||||
'JO',
|
||||
],
|
||||
[
|
||||
'SY',
|
||||
],
|
||||
[
|
||||
'IQ',
|
||||
],
|
||||
[
|
||||
'KW',
|
||||
],
|
||||
[
|
||||
'SA',
|
||||
],
|
||||
[
|
||||
'YE',
|
||||
],
|
||||
[
|
||||
'OM',
|
||||
],
|
||||
970 => [
|
||||
'PS',
|
||||
],
|
||||
[
|
||||
'AE',
|
||||
],
|
||||
[
|
||||
'IL',
|
||||
],
|
||||
[
|
||||
'BH',
|
||||
],
|
||||
[
|
||||
'QA',
|
||||
],
|
||||
[
|
||||
'BT',
|
||||
],
|
||||
[
|
||||
'MN',
|
||||
],
|
||||
[
|
||||
'NP',
|
||||
],
|
||||
979 => [
|
||||
'001',
|
||||
],
|
||||
992 => [
|
||||
'TJ',
|
||||
],
|
||||
[
|
||||
'TM',
|
||||
],
|
||||
[
|
||||
'AZ',
|
||||
],
|
||||
[
|
||||
'GE',
|
||||
],
|
||||
[
|
||||
'KG',
|
||||
],
|
||||
998 => [
|
||||
'UZ',
|
||||
],
|
||||
7 => ['RU', 'KZ'],
|
||||
20 => ['EG'],
|
||||
27 => ['ZA'],
|
||||
30 => ['GR'],
|
||||
31 => ['NL'],
|
||||
32 => ['BE'],
|
||||
33 => ['FR'],
|
||||
34 => ['ES'],
|
||||
36 => ['HU'],
|
||||
39 => ['IT', 'VA'],
|
||||
40 => ['RO'],
|
||||
41 => ['CH'],
|
||||
43 => ['AT'],
|
||||
44 => ['GB', 'GG', 'IM', 'JE'],
|
||||
45 => ['DK'],
|
||||
46 => ['SE'],
|
||||
47 => ['NO', 'SJ'],
|
||||
48 => ['PL'],
|
||||
49 => ['DE'],
|
||||
51 => ['PE'],
|
||||
52 => ['MX'],
|
||||
53 => ['CU'],
|
||||
54 => ['AR'],
|
||||
55 => ['BR'],
|
||||
56 => ['CL'],
|
||||
57 => ['CO'],
|
||||
58 => ['VE'],
|
||||
60 => ['MY'],
|
||||
61 => ['AU', 'CC', 'CX'],
|
||||
62 => ['ID'],
|
||||
63 => ['PH'],
|
||||
64 => ['NZ'],
|
||||
65 => ['SG'],
|
||||
66 => ['TH'],
|
||||
81 => ['JP'],
|
||||
82 => ['KR'],
|
||||
84 => ['VN'],
|
||||
86 => ['CN'],
|
||||
90 => ['TR'],
|
||||
91 => ['IN'],
|
||||
92 => ['PK'],
|
||||
93 => ['AF'],
|
||||
94 => ['LK'],
|
||||
95 => ['MM'],
|
||||
98 => ['IR'],
|
||||
211 => ['SS'],
|
||||
212 => ['MA', 'EH'],
|
||||
213 => ['DZ'],
|
||||
216 => ['TN'],
|
||||
218 => ['LY'],
|
||||
220 => ['GM'],
|
||||
221 => ['SN'],
|
||||
222 => ['MR'],
|
||||
223 => ['ML'],
|
||||
224 => ['GN'],
|
||||
225 => ['CI'],
|
||||
226 => ['BF'],
|
||||
227 => ['NE'],
|
||||
228 => ['TG'],
|
||||
229 => ['BJ'],
|
||||
230 => ['MU'],
|
||||
231 => ['LR'],
|
||||
232 => ['SL'],
|
||||
233 => ['GH'],
|
||||
234 => ['NG'],
|
||||
235 => ['TD'],
|
||||
236 => ['CF'],
|
||||
237 => ['CM'],
|
||||
238 => ['CV'],
|
||||
239 => ['ST'],
|
||||
240 => ['GQ'],
|
||||
241 => ['GA'],
|
||||
242 => ['CG'],
|
||||
243 => ['CD'],
|
||||
244 => ['AO'],
|
||||
245 => ['GW'],
|
||||
246 => ['IO'],
|
||||
247 => ['AC'],
|
||||
248 => ['SC'],
|
||||
249 => ['SD'],
|
||||
250 => ['RW'],
|
||||
251 => ['ET'],
|
||||
252 => ['SO'],
|
||||
253 => ['DJ'],
|
||||
254 => ['KE'],
|
||||
255 => ['TZ'],
|
||||
256 => ['UG'],
|
||||
257 => ['BI'],
|
||||
258 => ['MZ'],
|
||||
260 => ['ZM'],
|
||||
261 => ['MG'],
|
||||
262 => ['RE', 'YT'],
|
||||
263 => ['ZW'],
|
||||
264 => ['NA'],
|
||||
265 => ['MW'],
|
||||
266 => ['LS'],
|
||||
267 => ['BW'],
|
||||
268 => ['SZ'],
|
||||
269 => ['KM'],
|
||||
290 => ['SH', 'TA'],
|
||||
291 => ['ER'],
|
||||
297 => ['AW'],
|
||||
298 => ['FO'],
|
||||
299 => ['GL'],
|
||||
350 => ['GI'],
|
||||
351 => ['PT'],
|
||||
352 => ['LU'],
|
||||
353 => ['IE'],
|
||||
354 => ['IS'],
|
||||
355 => ['AL'],
|
||||
356 => ['MT'],
|
||||
357 => ['CY'],
|
||||
358 => ['FI', 'AX'],
|
||||
359 => ['BG'],
|
||||
370 => ['LT'],
|
||||
371 => ['LV'],
|
||||
372 => ['EE'],
|
||||
373 => ['MD'],
|
||||
374 => ['AM'],
|
||||
375 => ['BY'],
|
||||
376 => ['AD'],
|
||||
377 => ['MC'],
|
||||
378 => ['SM'],
|
||||
380 => ['UA'],
|
||||
381 => ['RS'],
|
||||
382 => ['ME'],
|
||||
383 => ['XK'],
|
||||
385 => ['HR'],
|
||||
386 => ['SI'],
|
||||
387 => ['BA'],
|
||||
389 => ['MK'],
|
||||
420 => ['CZ'],
|
||||
421 => ['SK'],
|
||||
423 => ['LI'],
|
||||
500 => ['FK'],
|
||||
501 => ['BZ'],
|
||||
502 => ['GT'],
|
||||
503 => ['SV'],
|
||||
504 => ['HN'],
|
||||
505 => ['NI'],
|
||||
506 => ['CR'],
|
||||
507 => ['PA'],
|
||||
508 => ['PM'],
|
||||
509 => ['HT'],
|
||||
590 => ['GP', 'BL', 'MF'],
|
||||
591 => ['BO'],
|
||||
592 => ['GY'],
|
||||
593 => ['EC'],
|
||||
594 => ['GF'],
|
||||
595 => ['PY'],
|
||||
596 => ['MQ'],
|
||||
597 => ['SR'],
|
||||
598 => ['UY'],
|
||||
599 => ['CW', 'BQ'],
|
||||
670 => ['TL'],
|
||||
672 => ['NF'],
|
||||
673 => ['BN'],
|
||||
674 => ['NR'],
|
||||
675 => ['PG'],
|
||||
676 => ['TO'],
|
||||
677 => ['SB'],
|
||||
678 => ['VU'],
|
||||
679 => ['FJ'],
|
||||
680 => ['PW'],
|
||||
681 => ['WF'],
|
||||
682 => ['CK'],
|
||||
683 => ['NU'],
|
||||
685 => ['WS'],
|
||||
686 => ['KI'],
|
||||
687 => ['NC'],
|
||||
688 => ['TV'],
|
||||
689 => ['PF'],
|
||||
690 => ['TK'],
|
||||
691 => ['FM'],
|
||||
692 => ['MH'],
|
||||
800 => ['001'],
|
||||
808 => ['001'],
|
||||
850 => ['KP'],
|
||||
852 => ['HK'],
|
||||
853 => ['MO'],
|
||||
855 => ['KH'],
|
||||
856 => ['LA'],
|
||||
870 => ['001'],
|
||||
878 => ['001'],
|
||||
880 => ['BD'],
|
||||
881 => ['001'],
|
||||
882 => ['001'],
|
||||
883 => ['001'],
|
||||
886 => ['TW'],
|
||||
888 => ['001'],
|
||||
960 => ['MV'],
|
||||
961 => ['LB'],
|
||||
962 => ['JO'],
|
||||
963 => ['SY'],
|
||||
964 => ['IQ'],
|
||||
965 => ['KW'],
|
||||
966 => ['SA'],
|
||||
967 => ['YE'],
|
||||
968 => ['OM'],
|
||||
970 => ['PS'],
|
||||
971 => ['AE'],
|
||||
972 => ['IL'],
|
||||
973 => ['BH'],
|
||||
974 => ['QA'],
|
||||
975 => ['BT'],
|
||||
976 => ['MN'],
|
||||
977 => ['NP'],
|
||||
979 => ['001'],
|
||||
992 => ['TJ'],
|
||||
993 => ['TM'],
|
||||
994 => ['AZ'],
|
||||
995 => ['GE'],
|
||||
996 => ['KG'],
|
||||
998 => ['UZ'],
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
class DefaultMetadataLoader implements MetadataLoaderInterface
|
||||
{
|
||||
public function loadMetadata(string $metadataFileName): array
|
||||
{
|
||||
return include $metadataFileName;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,18 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
/**
|
||||
* Types of phone number matches
|
||||
* See detailed description beside the isNumberMatch() method
|
||||
*/
|
||||
class MatchType
|
||||
enum MatchType: int
|
||||
{
|
||||
public const NOT_A_NUMBER = 0;
|
||||
public const NO_MATCH = 1;
|
||||
public const SHORT_NSN_MATCH = 2;
|
||||
public const NSN_MATCH = 3;
|
||||
public const EXACT_MATCH = 4;
|
||||
case NOT_A_NUMBER = 0;
|
||||
case NO_MATCH = 1;
|
||||
case SHORT_NSN_MATCH = 2;
|
||||
case NSN_MATCH = 3;
|
||||
case EXACT_MATCH = 4;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace libphonenumber;
|
||||
/**
|
||||
* Matcher for various regex matching
|
||||
*
|
||||
* Note that this is NOT the same as Google's java PhoneNumberMatcher class.
|
||||
* Note that this is NOT the same as google's java PhoneNumberMatcher class.
|
||||
* This class is a minimal port of java's built-in matcher class, whereas PhoneNumberMatcher
|
||||
* is designed to recognize phone numbers embedded in any text.
|
||||
*
|
||||
@@ -16,25 +16,22 @@ namespace libphonenumber;
|
||||
class Matcher
|
||||
{
|
||||
protected string $pattern;
|
||||
|
||||
protected string $subject = '';
|
||||
|
||||
/**
|
||||
* @var array<array{string,int}>
|
||||
* @var array<int,mixed>
|
||||
*/
|
||||
protected array $groups = [];
|
||||
|
||||
private int $searchIndex = 0;
|
||||
|
||||
/**
|
||||
*/
|
||||
public function __construct(string $pattern, string $subject)
|
||||
{
|
||||
$this->pattern = str_replace('/', '\/', $pattern);
|
||||
$this->subject = $subject;
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
protected function doMatch(string $type = 'find', int $offset = 0): bool
|
||||
{
|
||||
$final_pattern = '(?:' . $this->pattern . ')';
|
||||
@@ -97,7 +94,7 @@ class Matcher
|
||||
|
||||
public function groupCount(): ?int
|
||||
{
|
||||
if (empty($this->groups)) {
|
||||
if ($this->groups === []) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -123,8 +120,11 @@ class Matcher
|
||||
return $this->groups[$group][1] + mb_strlen($this->groups[$group][0]);
|
||||
}
|
||||
|
||||
public function start(int $group = 0): ?int
|
||||
public function start(?int $group = null): mixed
|
||||
{
|
||||
if ($group === null) {
|
||||
$group = 0;
|
||||
}
|
||||
if (!isset($this->groups[$group])) {
|
||||
return null;
|
||||
}
|
||||
@@ -142,7 +142,7 @@ class Matcher
|
||||
return preg_replace('/' . $this->pattern . '/x', $replacement, $this->subject);
|
||||
}
|
||||
|
||||
public function reset(string $input = ''): self
|
||||
public function reset(string $input = ''): static
|
||||
{
|
||||
$this->subject = $input;
|
||||
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
/**
|
||||
* @interal
|
||||
* @phpstan-import-type PhoneMetadataArray from PhoneMetadata
|
||||
*/
|
||||
interface MetadataLoaderInterface
|
||||
{
|
||||
/**
|
||||
* @param string $metadataFileName File name (including path) of metadata to load.
|
||||
* @return PhoneMetadataArray
|
||||
*/
|
||||
public function loadMetadata(string $metadataFileName): array;
|
||||
}
|
||||
@@ -8,15 +8,11 @@ interface MetadataSourceInterface
|
||||
{
|
||||
/**
|
||||
* Gets phone metadata for a region.
|
||||
* @param string $regionCode the region code.
|
||||
* @return PhoneMetadata the phone metadata for that region, or null if there is none.
|
||||
*/
|
||||
public function getMetadataForRegion(string $regionCode): PhoneMetadata;
|
||||
|
||||
/**
|
||||
* Gets phone metadata for a non-geographical region.
|
||||
* @param int $countryCallingCode the country calling code.
|
||||
* @return PhoneMetadata the phone metadata for that region, or null if there is none.
|
||||
*/
|
||||
public function getMetadataForNonGeographicalRegion(int $countryCallingCode): PhoneMetadata;
|
||||
}
|
||||
|
||||
+23
-30
@@ -4,13 +4,13 @@ declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
use RuntimeException;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class MultiFileMetadataSourceImpl implements MetadataSourceInterface
|
||||
{
|
||||
protected static string $metaDataFilePrefix = PhoneNumberUtil::META_DATA_FILE_PREFIX;
|
||||
|
||||
/**
|
||||
* A mapping from a region code to the PhoneMetadata for that region.
|
||||
* @var PhoneMetadata[]
|
||||
@@ -26,62 +26,55 @@ class MultiFileMetadataSourceImpl implements MetadataSourceInterface
|
||||
protected array $countryCodeToNonGeographicalMetadataMap = [];
|
||||
|
||||
/**
|
||||
* The prefix of the metadata files from which region data is loaded.
|
||||
* @param string $currentFilePrefix The prefix of the metadata class names from which region data is loaded
|
||||
*/
|
||||
protected ?string $currentFilePrefix;
|
||||
public function __construct(
|
||||
protected readonly string $currentFilePrefix = __NAMESPACE__ . '\data\PhoneNumberMetadata_'
|
||||
) {}
|
||||
|
||||
public function __construct(protected MetadataLoaderInterface $metadataLoader, ?string $currentFilePrefix = null)
|
||||
{
|
||||
if ($currentFilePrefix === null) {
|
||||
$currentFilePrefix = static::$metaDataFilePrefix;
|
||||
}
|
||||
|
||||
$this->currentFilePrefix = $currentFilePrefix;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function getMetadataForRegion(string $regionCode): PhoneMetadata
|
||||
{
|
||||
$regionCode = strtoupper($regionCode);
|
||||
|
||||
if (!array_key_exists($regionCode, $this->regionToMetadataMap)) {
|
||||
if (!isset($this->regionToMetadataMap[$regionCode])) {
|
||||
// The regionCode here will be valid and won't be '001', so we don't need to worry about
|
||||
// what to pass in for the country calling code.
|
||||
$this->loadMetadataFromFile($this->currentFilePrefix, $regionCode, 0, $this->metadataLoader);
|
||||
$this->loadMetadataFromFile($this->currentFilePrefix, $regionCode, 0);
|
||||
}
|
||||
|
||||
return $this->regionToMetadataMap[$regionCode];
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function getMetadataForNonGeographicalRegion(int $countryCallingCode): PhoneMetadata
|
||||
{
|
||||
if (!array_key_exists($countryCallingCode, $this->countryCodeToNonGeographicalMetadataMap)) {
|
||||
$this->loadMetadataFromFile($this->currentFilePrefix, PhoneNumberUtil::REGION_CODE_FOR_NON_GEO_ENTITY, $countryCallingCode, $this->metadataLoader);
|
||||
if (!isset($this->countryCodeToNonGeographicalMetadataMap[$countryCallingCode])) {
|
||||
$this->loadMetadataFromFile($this->currentFilePrefix, PhoneNumberUtil::REGION_CODE_FOR_NON_GEO_ENTITY, $countryCallingCode);
|
||||
}
|
||||
|
||||
return $this->countryCodeToNonGeographicalMetadataMap[$countryCallingCode];
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function loadMetadataFromFile(string $filePrefix, string $regionCode, int $countryCallingCode, MetadataLoaderInterface $metadataLoader): void
|
||||
public function loadMetadataFromFile(string $filePrefix, string $regionCode, int $countryCallingCode): void
|
||||
{
|
||||
$regionCode = strtoupper($regionCode);
|
||||
|
||||
$isNonGeoRegion = PhoneNumberUtil::REGION_CODE_FOR_NON_GEO_ENTITY === $regionCode;
|
||||
$fileName = $filePrefix . '_' . ($isNonGeoRegion ? $countryCallingCode : $regionCode) . '.php';
|
||||
if (!is_readable($fileName)) {
|
||||
throw new \RuntimeException('missing metadata: ' . $fileName);
|
||||
|
||||
$class = $filePrefix . ($isNonGeoRegion ? $countryCallingCode : ucfirst($regionCode));
|
||||
|
||||
if (!class_exists($class)) {
|
||||
throw new RuntimeException('missing metadata: ' . $class);
|
||||
}
|
||||
|
||||
$metadata = new $class();
|
||||
|
||||
if (!$metadata instanceof PhoneMetadata) {
|
||||
throw new RuntimeException('invalid metadata: ' . $class);
|
||||
}
|
||||
|
||||
$data = $metadataLoader->loadMetadata($fileName);
|
||||
$metadata = new PhoneMetadata();
|
||||
$metadata->fromArray($data);
|
||||
if ($isNonGeoRegion) {
|
||||
$this->countryCodeToNonGeographicalMetadataMap[$countryCallingCode] = $metadata;
|
||||
} else {
|
||||
|
||||
@@ -6,17 +6,16 @@ namespace libphonenumber;
|
||||
|
||||
/**
|
||||
* Number Format
|
||||
* @interal
|
||||
* @phpstan-type NumberFormatArray array{pattern:string|null,format:string|null,leadingDigitsPatterns:array<string>,nationalPrefixFormattingRule?:string,domesticCarrierCodeFormattingRule?:string,nationalPrefixOptionalWhenFormatting?:bool}
|
||||
* @internal
|
||||
*/
|
||||
class NumberFormat
|
||||
{
|
||||
protected ?string $pattern;
|
||||
protected string $pattern = '';
|
||||
protected bool $hasPattern = false;
|
||||
protected ?string $format;
|
||||
protected string $format = '';
|
||||
protected bool $hasFormat = false;
|
||||
/**
|
||||
* @var array<string>
|
||||
* @var array<int,string>
|
||||
*/
|
||||
protected array $leadingDigitsPattern = [];
|
||||
protected string $nationalPrefixFormattingRule = '';
|
||||
@@ -26,46 +25,17 @@ class NumberFormat
|
||||
protected string $domesticCarrierCodeFormattingRule = '';
|
||||
protected bool $hasDomesticCarrierCodeFormattingRule = false;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->clear();
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
public function clear(): NumberFormat
|
||||
{
|
||||
$this->hasPattern = false;
|
||||
$this->pattern = null;
|
||||
|
||||
$this->hasFormat = false;
|
||||
$this->format = null;
|
||||
|
||||
$this->leadingDigitsPattern = [];
|
||||
|
||||
$this->hasNationalPrefixFormattingRule = false;
|
||||
$this->nationalPrefixFormattingRule = '';
|
||||
|
||||
$this->hasNationalPrefixOptionalWhenFormatting = false;
|
||||
$this->nationalPrefixOptionalWhenFormatting = false;
|
||||
|
||||
$this->hasDomesticCarrierCodeFormattingRule = false;
|
||||
$this->domesticCarrierCodeFormattingRule = '';
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasPattern(): bool
|
||||
{
|
||||
return $this->hasPattern;
|
||||
}
|
||||
|
||||
public function getPattern(): ?string
|
||||
public function getPattern(): string
|
||||
{
|
||||
return $this->pattern;
|
||||
}
|
||||
|
||||
public function setPattern(string $value): NumberFormat
|
||||
public function setPattern(string $value): static
|
||||
{
|
||||
$this->hasPattern = true;
|
||||
$this->pattern = $value;
|
||||
@@ -83,10 +53,12 @@ class NumberFormat
|
||||
return $this->nationalPrefixOptionalWhenFormatting;
|
||||
}
|
||||
|
||||
public function setNationalPrefixOptionalWhenFormatting(bool $nationalPrefixOptionalWhenFormatting): void
|
||||
public function setNationalPrefixOptionalWhenFormatting(bool $nationalPrefixOptionalWhenFormatting): static
|
||||
{
|
||||
$this->hasNationalPrefixOptionalWhenFormatting = true;
|
||||
$this->nationalPrefixOptionalWhenFormatting = $nationalPrefixOptionalWhenFormatting;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasFormat(): bool
|
||||
@@ -94,12 +66,12 @@ class NumberFormat
|
||||
return $this->hasFormat;
|
||||
}
|
||||
|
||||
public function getFormat(): ?string
|
||||
public function getFormat(): string
|
||||
{
|
||||
return $this->format;
|
||||
}
|
||||
|
||||
public function setFormat(string $value): NumberFormat
|
||||
public function setFormat(string $value): static
|
||||
{
|
||||
$this->hasFormat = true;
|
||||
$this->format = $value;
|
||||
@@ -108,7 +80,7 @@ class NumberFormat
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
* @return array<int,string>
|
||||
*/
|
||||
public function leadingDigitPatterns(): array
|
||||
{
|
||||
@@ -125,7 +97,16 @@ class NumberFormat
|
||||
return $this->leadingDigitsPattern[$index];
|
||||
}
|
||||
|
||||
public function addLeadingDigitsPattern(string $value): NumberFormat
|
||||
/**
|
||||
* @param array<int,string> $patterns
|
||||
*/
|
||||
public function setLeadingDigitsPattern(array $patterns): static
|
||||
{
|
||||
$this->leadingDigitsPattern = $patterns;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function addLeadingDigitsPattern(string $value): static
|
||||
{
|
||||
$this->leadingDigitsPattern[] = $value;
|
||||
|
||||
@@ -142,7 +123,7 @@ class NumberFormat
|
||||
return $this->nationalPrefixFormattingRule;
|
||||
}
|
||||
|
||||
public function setNationalPrefixFormattingRule(string $value): NumberFormat
|
||||
public function setNationalPrefixFormattingRule(string $value): static
|
||||
{
|
||||
$this->hasNationalPrefixFormattingRule = true;
|
||||
$this->nationalPrefixFormattingRule = $value;
|
||||
@@ -150,7 +131,7 @@ class NumberFormat
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function clearNationalPrefixFormattingRule(): NumberFormat
|
||||
public function clearNationalPrefixFormattingRule(): static
|
||||
{
|
||||
$this->nationalPrefixFormattingRule = '';
|
||||
|
||||
@@ -167,7 +148,7 @@ class NumberFormat
|
||||
return $this->domesticCarrierCodeFormattingRule;
|
||||
}
|
||||
|
||||
public function setDomesticCarrierCodeFormattingRule(string $value): NumberFormat
|
||||
public function setDomesticCarrierCodeFormattingRule(string $value): static
|
||||
{
|
||||
$this->hasDomesticCarrierCodeFormattingRule = true;
|
||||
$this->domesticCarrierCodeFormattingRule = $value;
|
||||
@@ -175,7 +156,7 @@ class NumberFormat
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function mergeFrom(NumberFormat $other): NumberFormat
|
||||
public function mergeFrom(NumberFormat $other): static
|
||||
{
|
||||
if ($other->hasPattern()) {
|
||||
$this->setPattern($other->getPattern());
|
||||
@@ -199,55 +180,4 @@ class NumberFormat
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @return NumberFormatArray
|
||||
*/
|
||||
public function toArray(): array
|
||||
{
|
||||
$output = [];
|
||||
$output['pattern'] = $this->getPattern();
|
||||
$output['format'] = $this->getFormat();
|
||||
|
||||
$output['leadingDigitsPatterns'] = $this->leadingDigitPatterns();
|
||||
|
||||
if ($this->hasNationalPrefixFormattingRule()) {
|
||||
$output['nationalPrefixFormattingRule'] = $this->getNationalPrefixFormattingRule();
|
||||
}
|
||||
|
||||
if ($this->hasDomesticCarrierCodeFormattingRule()) {
|
||||
$output['domesticCarrierCodeFormattingRule'] = $this->getDomesticCarrierCodeFormattingRule();
|
||||
}
|
||||
|
||||
if ($this->hasNationalPrefixOptionalWhenFormatting() && $this->getNationalPrefixOptionalWhenFormatting() !== false) {
|
||||
$output['nationalPrefixOptionalWhenFormatting'] = $this->getNationalPrefixOptionalWhenFormatting();
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @param NumberFormatArray $input
|
||||
*/
|
||||
public function fromArray(array $input): void
|
||||
{
|
||||
$this->setPattern($input['pattern']);
|
||||
$this->setFormat($input['format']);
|
||||
foreach ($input['leadingDigitsPatterns'] as $leadingDigitsPattern) {
|
||||
$this->addLeadingDigitsPattern($leadingDigitsPattern);
|
||||
}
|
||||
|
||||
if (isset($input['nationalPrefixFormattingRule']) && $input['nationalPrefixFormattingRule'] !== '') {
|
||||
$this->setNationalPrefixFormattingRule($input['nationalPrefixFormattingRule']);
|
||||
}
|
||||
if (isset($input['domesticCarrierCodeFormattingRule']) && $input['domesticCarrierCodeFormattingRule'] !== '') {
|
||||
$this->setDomesticCarrierCodeFormattingRule($input['domesticCarrierCodeFormattingRule']);
|
||||
}
|
||||
|
||||
if (isset($input['nationalPrefixOptionalWhenFormatting'])) {
|
||||
$this->setNationalPrefixOptionalWhenFormatting($input['nationalPrefixOptionalWhenFormatting']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,10 +4,14 @@ declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
use Exception;
|
||||
use Stringable;
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Generic exception class for errors encountered when parsing phone numbers.
|
||||
*/
|
||||
class NumberParseException extends \Exception implements \Stringable
|
||||
class NumberParseException extends Exception implements Stringable
|
||||
{
|
||||
/**
|
||||
* The country code supplied did not belong to a supported country or non-geographical entity.
|
||||
@@ -38,7 +42,7 @@ class NumberParseException extends \Exception implements \Stringable
|
||||
|
||||
protected int $errorType;
|
||||
|
||||
public function __construct(int $errorType, string $message, ?\Throwable $previous = null)
|
||||
public function __construct(int $errorType, string $message, ?Throwable $previous = null)
|
||||
{
|
||||
parent::__construct($message, $errorType, $previous);
|
||||
$this->message = $message;
|
||||
|
||||
@@ -4,24 +4,35 @@ declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
use function count;
|
||||
|
||||
/**
|
||||
* Class PhoneMetadata
|
||||
* @package libphonenumber
|
||||
* @internal Used internally, and can change at any time
|
||||
* @phpstan-import-type PhoneNumberDescArray from PhoneNumberDesc
|
||||
* @phpstan-import-type NumberFormatArray from NumberFormat
|
||||
* @phpstan-type PhoneMetadataArray array{generalDesc?:PhoneNumberDescArray,fixedLine?:PhoneNumberDescArray,mobile?:PhoneNumberDescArray,tollFree?:PhoneNumberDescArray,premiumRate?:PhoneNumberDescArray,sharedCost?:PhoneNumberDescArray,personalNumber?:PhoneNumberDescArray,voip?:PhoneNumberDescArray,pager?:PhoneNumberDescArray,uan?:PhoneNumberDescArray,emergency?:PhoneNumberDescArray,voicemail?:PhoneNumberDescArray,shortCode?:PhoneNumberDescArray,standardRate?:PhoneNumberDescArray,carrierSpecific?:PhoneNumberDescArray,smsServices?:PhoneNumberDescArray,noInternationalDialling?:PhoneNumberDescArray,id:string|null,countryCode?:int,internationalPrefix?:string,preferredInternationalPrefix?:string,nationalPrefix?:string,preferredExtnPrefix?:string,nationalPrefixForParsing?:string,nationalPrefixTransformRule?:string,sameMobileAndFixedLinePattern?:bool,numberFormat:NumberFormatArray[],intlNumberFormat?:NumberFormatArray[],mainCountryForCode?:bool,leadingDigits?:string,mobileNumberPortableRegion?:bool}
|
||||
*/
|
||||
class PhoneMetadata
|
||||
{
|
||||
protected ?string $id = null;
|
||||
protected ?int $countryCode = null;
|
||||
protected string $leadingDigits;
|
||||
protected string $internationalPrefix;
|
||||
protected ?string $preferredInternationalPrefix = null;
|
||||
/**
|
||||
* @var string|null
|
||||
*/
|
||||
protected const ID = null;
|
||||
/**
|
||||
* @var int|null
|
||||
*/
|
||||
protected const COUNTRY_CODE = null;
|
||||
/**
|
||||
* @var string|null
|
||||
*/
|
||||
protected const LEADING_DIGITS = null;
|
||||
/**
|
||||
* @var string|null
|
||||
*/
|
||||
protected const NATIONAL_PREFIX = null;
|
||||
protected ?string $nationalPrefixForParsing = null;
|
||||
protected ?string $internationalPrefix = null;
|
||||
protected ?string $preferredInternationalPrefix = null;
|
||||
protected ?string $nationalPrefixTransformRule = null;
|
||||
protected ?string $nationalPrefix = null;
|
||||
protected ?string $preferredExtnPrefix = null;
|
||||
protected bool $mainCountryForCode = false;
|
||||
protected bool $mobileNumberPortableRegion = false;
|
||||
@@ -52,16 +63,6 @@ class PhoneMetadata
|
||||
*/
|
||||
protected array $intlNumberFormat = [];
|
||||
|
||||
public function hasId(): bool
|
||||
{
|
||||
return isset($this->id);
|
||||
}
|
||||
|
||||
public function hasMainCountryForCode(): bool
|
||||
{
|
||||
return isset($this->mainCountryForCode);
|
||||
}
|
||||
|
||||
public function isMainCountryForCode(): bool
|
||||
{
|
||||
return $this->mainCountryForCode;
|
||||
@@ -72,25 +73,11 @@ class PhoneMetadata
|
||||
return $this->mainCountryForCode;
|
||||
}
|
||||
|
||||
public function setMainCountryForCode(bool $value): PhoneMetadata
|
||||
{
|
||||
$this->mainCountryForCode = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function clearMainCountryForCode(): PhoneMetadata
|
||||
{
|
||||
$this->mainCountryForCode = false;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function numberFormatSize(): int
|
||||
{
|
||||
return \count($this->numberFormat);
|
||||
return count($this->numberFormat);
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
public function getNumberFormat(int $index): NumberFormat
|
||||
{
|
||||
return $this->numberFormat[$index];
|
||||
@@ -98,7 +85,7 @@ class PhoneMetadata
|
||||
|
||||
public function intlNumberFormatSize(): int
|
||||
{
|
||||
return \count($this->intlNumberFormat);
|
||||
return count($this->intlNumberFormat);
|
||||
}
|
||||
|
||||
public function getIntlNumberFormat(int $index): NumberFormat
|
||||
@@ -106,152 +93,9 @@ class PhoneMetadata
|
||||
return $this->intlNumberFormat[$index];
|
||||
}
|
||||
|
||||
public function clearIntlNumberFormat(): PhoneMetadata
|
||||
{
|
||||
$this->intlNumberFormat = [];
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @return PhoneMetadataArray
|
||||
*/
|
||||
public function toArray(): array
|
||||
{
|
||||
$output = [];
|
||||
|
||||
$output['id'] = $this->getId();
|
||||
|
||||
if ($this->hasCountryCode()) {
|
||||
$output['countryCode'] = $this->getCountryCode();
|
||||
}
|
||||
|
||||
if ($this->hasGeneralDesc()) {
|
||||
$output['generalDesc'] = $this->getGeneralDesc()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasFixedLine()) {
|
||||
$output['fixedLine'] = $this->getFixedLine()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasMobile()) {
|
||||
$output['mobile'] = $this->getMobile()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasTollFree()) {
|
||||
$output['tollFree'] = $this->getTollFree()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasPremiumRate()) {
|
||||
$output['premiumRate'] = $this->getPremiumRate()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasSharedCost()) {
|
||||
$output['sharedCost'] = $this->getSharedCost()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasPersonalNumber()) {
|
||||
$output['personalNumber'] = $this->getPersonalNumber()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasVoip()) {
|
||||
$output['voip'] = $this->getVoip()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasPager()) {
|
||||
$output['pager'] = $this->getPager()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasUan()) {
|
||||
$output['uan'] = $this->getUan()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasEmergency()) {
|
||||
$output['emergency'] = $this->getEmergency()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasVoicemail()) {
|
||||
$output['voicemail'] = $this->getVoicemail()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasShortCode()) {
|
||||
$output['shortCode'] = $this->getShortCode()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasStandardRate()) {
|
||||
$output['standardRate'] = $this->getStandardRate()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasCarrierSpecific()) {
|
||||
$output['carrierSpecific'] = $this->getCarrierSpecific()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasSmsServices()) {
|
||||
$output['smsServices'] = $this->getSmsServices()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasNoInternationalDialling()) {
|
||||
$output['noInternationalDialling'] = $this->getNoInternationalDialling()->toArray();
|
||||
}
|
||||
|
||||
if ($this->hasInternationalPrefix()) {
|
||||
$output['internationalPrefix'] = $this->getInternationalPrefix();
|
||||
}
|
||||
|
||||
if ($this->hasPreferredInternationalPrefix()) {
|
||||
$output['preferredInternationalPrefix'] = $this->getPreferredInternationalPrefix();
|
||||
}
|
||||
|
||||
if ($this->hasNationalPrefix()) {
|
||||
$output['nationalPrefix'] = $this->getNationalPrefix();
|
||||
}
|
||||
|
||||
if ($this->hasPreferredExtnPrefix()) {
|
||||
$output['preferredExtnPrefix'] = $this->getPreferredExtnPrefix();
|
||||
}
|
||||
|
||||
if ($this->hasNationalPrefixForParsing()) {
|
||||
$output['nationalPrefixForParsing'] = $this->getNationalPrefixForParsing();
|
||||
}
|
||||
|
||||
if ($this->hasNationalPrefixTransformRule()) {
|
||||
$output['nationalPrefixTransformRule'] = $this->getNationalPrefixTransformRule();
|
||||
}
|
||||
|
||||
if ($this->hasSameMobileAndFixedLinePattern() && $this->getSameMobileAndFixedLinePattern() !== false) {
|
||||
$output['sameMobileAndFixedLinePattern'] = $this->getSameMobileAndFixedLinePattern();
|
||||
}
|
||||
|
||||
$output['numberFormat'] = [];
|
||||
foreach ($this->numberFormats() as $numberFormat) {
|
||||
$output['numberFormat'][] = $numberFormat->toArray();
|
||||
}
|
||||
|
||||
if (!empty($this->intlNumberFormats())) {
|
||||
$output['intlNumberFormat'] = [];
|
||||
foreach ($this->intlNumberFormats() as $intlNumberFormat) {
|
||||
$output['intlNumberFormat'][] = $intlNumberFormat->toArray();
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->getMainCountryForCode() !== false) {
|
||||
$output['mainCountryForCode'] = $this->getMainCountryForCode();
|
||||
}
|
||||
|
||||
if ($this->hasLeadingDigits()) {
|
||||
$output['leadingDigits'] = $this->getLeadingDigits();
|
||||
}
|
||||
|
||||
if ($this->hasMobileNumberPortableRegion() && $this->isMobileNumberPortableRegion() !== false) {
|
||||
$output['mobileNumberPortableRegion'] = $this->isMobileNumberPortableRegion();
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
public function hasGeneralDesc(): bool
|
||||
{
|
||||
return isset($this->generalDesc);
|
||||
return $this->generalDesc !== null;
|
||||
}
|
||||
|
||||
public function getGeneralDesc(): ?PhoneNumberDesc
|
||||
@@ -259,15 +103,9 @@ class PhoneMetadata
|
||||
return $this->generalDesc;
|
||||
}
|
||||
|
||||
public function setGeneralDesc(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->generalDesc = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasFixedLine(): bool
|
||||
{
|
||||
return isset($this->fixedLine);
|
||||
return $this->fixedLine !== null;
|
||||
}
|
||||
|
||||
public function getFixedLine(): ?PhoneNumberDesc
|
||||
@@ -275,15 +113,9 @@ class PhoneMetadata
|
||||
return $this->fixedLine;
|
||||
}
|
||||
|
||||
public function setFixedLine(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->fixedLine = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasMobile(): bool
|
||||
{
|
||||
return isset($this->mobile);
|
||||
return $this->mobile !== null;
|
||||
}
|
||||
|
||||
public function getMobile(): ?PhoneNumberDesc
|
||||
@@ -291,127 +123,44 @@ class PhoneMetadata
|
||||
return $this->mobile;
|
||||
}
|
||||
|
||||
public function setMobile(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->mobile = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasTollFree(): bool
|
||||
{
|
||||
return isset($this->tollFree);
|
||||
}
|
||||
|
||||
public function getTollFree(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->tollFree;
|
||||
}
|
||||
|
||||
public function setTollFree(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->tollFree = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasPremiumRate(): bool
|
||||
{
|
||||
return isset($this->premiumRate);
|
||||
}
|
||||
|
||||
public function getPremiumRate(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->premiumRate;
|
||||
}
|
||||
|
||||
public function setPremiumRate(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->premiumRate = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasSharedCost(): bool
|
||||
{
|
||||
return isset($this->sharedCost);
|
||||
}
|
||||
|
||||
public function getSharedCost(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->sharedCost;
|
||||
}
|
||||
|
||||
public function setSharedCost(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->sharedCost = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasPersonalNumber(): bool
|
||||
{
|
||||
return isset($this->personalNumber);
|
||||
}
|
||||
|
||||
public function getPersonalNumber(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->personalNumber;
|
||||
}
|
||||
|
||||
public function setPersonalNumber(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->personalNumber = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasVoip(): bool
|
||||
{
|
||||
return isset($this->voip);
|
||||
}
|
||||
|
||||
public function getVoip(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->voip;
|
||||
}
|
||||
|
||||
public function setVoip(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->voip = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasPager(): bool
|
||||
{
|
||||
return isset($this->pager);
|
||||
}
|
||||
|
||||
public function getPager(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->pager;
|
||||
}
|
||||
|
||||
public function setPager(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->pager = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasUan(): bool
|
||||
{
|
||||
return isset($this->uan);
|
||||
}
|
||||
|
||||
public function getUan(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->uan;
|
||||
}
|
||||
|
||||
public function setUan(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->uan = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasEmergency(): bool
|
||||
{
|
||||
return isset($this->emergency);
|
||||
return $this->emergency !== null;
|
||||
}
|
||||
|
||||
public function getEmergency(): ?PhoneNumberDesc
|
||||
@@ -419,156 +168,57 @@ class PhoneMetadata
|
||||
return $this->emergency;
|
||||
}
|
||||
|
||||
public function setEmergency(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->emergency = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasVoicemail(): bool
|
||||
{
|
||||
return isset($this->voicemail);
|
||||
}
|
||||
|
||||
public function getVoicemail(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->voicemail;
|
||||
}
|
||||
|
||||
public function setVoicemail(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->voicemail = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasShortCode(): bool
|
||||
{
|
||||
return isset($this->short_code);
|
||||
}
|
||||
|
||||
public function getShortCode(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->short_code;
|
||||
}
|
||||
|
||||
public function setShortCode(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->short_code = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasStandardRate(): bool
|
||||
{
|
||||
return isset($this->standard_rate);
|
||||
}
|
||||
|
||||
public function getStandardRate(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->standard_rate;
|
||||
}
|
||||
|
||||
public function setStandardRate(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->standard_rate = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasCarrierSpecific(): bool
|
||||
{
|
||||
return isset($this->carrierSpecific);
|
||||
}
|
||||
|
||||
public function getCarrierSpecific(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->carrierSpecific;
|
||||
}
|
||||
|
||||
public function setCarrierSpecific(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->carrierSpecific = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasSmsServices(): bool
|
||||
{
|
||||
return isset($this->smsServices);
|
||||
}
|
||||
|
||||
public function getSmsServices(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->smsServices;
|
||||
}
|
||||
|
||||
public function setSmsServices(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->smsServices = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasNoInternationalDialling(): bool
|
||||
{
|
||||
return isset($this->noInternationalDialling);
|
||||
}
|
||||
|
||||
public function getNoInternationalDialling(): ?PhoneNumberDesc
|
||||
{
|
||||
return $this->noInternationalDialling;
|
||||
}
|
||||
|
||||
public function setNoInternationalDialling(PhoneNumberDesc $value): PhoneMetadata
|
||||
{
|
||||
$this->noInternationalDialling = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getId(): ?string
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setId(string $value): PhoneMetadata
|
||||
{
|
||||
$this->id = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/** @phpstan-assert-if-true !null $this->getCountryCode() */
|
||||
public function hasCountryCode(): bool
|
||||
{
|
||||
return isset($this->countryCode);
|
||||
return static::ID;
|
||||
}
|
||||
|
||||
public function getCountryCode(): ?int
|
||||
{
|
||||
return $this->countryCode;
|
||||
return static::COUNTRY_CODE;
|
||||
}
|
||||
|
||||
public function setCountryCode(int $value): PhoneMetadata
|
||||
{
|
||||
$this->countryCode = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasInternationalPrefix(): bool
|
||||
{
|
||||
return isset($this->internationalPrefix);
|
||||
}
|
||||
|
||||
public function getInternationalPrefix(): string
|
||||
public function getInternationalPrefix(): ?string
|
||||
{
|
||||
return $this->internationalPrefix;
|
||||
}
|
||||
|
||||
public function setInternationalPrefix(string $value): PhoneMetadata
|
||||
{
|
||||
$this->internationalPrefix = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/** @phpstan-assert-if-true !null $this->getPreferredInternationalPrefix() */
|
||||
public function hasPreferredInternationalPrefix(): bool
|
||||
{
|
||||
return isset($this->preferredInternationalPrefix);
|
||||
return ($this->preferredInternationalPrefix !== null);
|
||||
}
|
||||
|
||||
public function getPreferredInternationalPrefix(): ?string
|
||||
@@ -576,33 +226,19 @@ class PhoneMetadata
|
||||
return $this->preferredInternationalPrefix;
|
||||
}
|
||||
|
||||
public function setPreferredInternationalPrefix(string $value): PhoneMetadata
|
||||
{
|
||||
$this->preferredInternationalPrefix = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/** @phpstan-assert-if-true !null $this->getNationalPrefix() */
|
||||
public function hasNationalPrefix(): bool
|
||||
{
|
||||
return isset($this->nationalPrefix);
|
||||
return static::NATIONAL_PREFIX !== null;
|
||||
}
|
||||
|
||||
public function getNationalPrefix(): ?string
|
||||
{
|
||||
return $this->nationalPrefix;
|
||||
return static::NATIONAL_PREFIX;
|
||||
}
|
||||
|
||||
public function setNationalPrefix(string $value): PhoneMetadata
|
||||
{
|
||||
$this->nationalPrefix = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/** @phpstan-assert-if-true !null $this->getPreferredExtnPrefix() */
|
||||
public function hasPreferredExtnPrefix(): bool
|
||||
{
|
||||
return isset($this->preferredExtnPrefix);
|
||||
return $this->preferredExtnPrefix !== null;
|
||||
}
|
||||
|
||||
public function getPreferredExtnPrefix(): ?string
|
||||
@@ -610,16 +246,9 @@ class PhoneMetadata
|
||||
return $this->preferredExtnPrefix;
|
||||
}
|
||||
|
||||
public function setPreferredExtnPrefix(string $value): PhoneMetadata
|
||||
{
|
||||
$this->preferredExtnPrefix = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/** @phpstan-assert-if-true !null $this->getNationalPrefixForParsing() */
|
||||
public function hasNationalPrefixForParsing(): bool
|
||||
{
|
||||
return isset($this->nationalPrefixForParsing);
|
||||
return $this->nationalPrefixForParsing !== null;
|
||||
}
|
||||
|
||||
public function getNationalPrefixForParsing(): ?string
|
||||
@@ -627,45 +256,16 @@ class PhoneMetadata
|
||||
return $this->nationalPrefixForParsing;
|
||||
}
|
||||
|
||||
public function setNationalPrefixForParsing(string $value): PhoneMetadata
|
||||
{
|
||||
$this->nationalPrefixForParsing = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/** @phpstan-assert-if-true !null $this->getNationalPrefixTransformRule() */
|
||||
public function hasNationalPrefixTransformRule(): bool
|
||||
{
|
||||
return isset($this->nationalPrefixTransformRule);
|
||||
}
|
||||
|
||||
public function getNationalPrefixTransformRule(): ?string
|
||||
{
|
||||
return $this->nationalPrefixTransformRule;
|
||||
}
|
||||
|
||||
public function setNationalPrefixTransformRule(string $value): PhoneMetadata
|
||||
{
|
||||
$this->nationalPrefixTransformRule = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasSameMobileAndFixedLinePattern(): bool
|
||||
{
|
||||
return isset($this->sameMobileAndFixedLinePattern);
|
||||
}
|
||||
|
||||
public function getSameMobileAndFixedLinePattern(): bool
|
||||
{
|
||||
return $this->sameMobileAndFixedLinePattern;
|
||||
}
|
||||
|
||||
public function setSameMobileAndFixedLinePattern(bool $value): PhoneMetadata
|
||||
{
|
||||
$this->sameMobileAndFixedLinePattern = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return NumberFormat[]
|
||||
*/
|
||||
@@ -684,23 +284,12 @@ class PhoneMetadata
|
||||
|
||||
public function hasLeadingDigits(): bool
|
||||
{
|
||||
return isset($this->leadingDigits);
|
||||
return static::LEADING_DIGITS !== null;
|
||||
}
|
||||
|
||||
public function getLeadingDigits(): string
|
||||
public function getLeadingDigits(): ?string
|
||||
{
|
||||
return $this->leadingDigits;
|
||||
}
|
||||
|
||||
public function setLeadingDigits(string $value): PhoneMetadata
|
||||
{
|
||||
$this->leadingDigits = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasMobileNumberPortableRegion(): bool
|
||||
{
|
||||
return isset($this->mobileNumberPortableRegion);
|
||||
return static::LEADING_DIGITS;
|
||||
}
|
||||
|
||||
public function isMobileNumberPortableRegion(): bool
|
||||
@@ -708,205 +297,9 @@ class PhoneMetadata
|
||||
return $this->mobileNumberPortableRegion;
|
||||
}
|
||||
|
||||
public function setMobileNumberPortableRegion(bool $value): PhoneMetadata
|
||||
public function setInternationalPrefix(string $value): static
|
||||
{
|
||||
$this->mobileNumberPortableRegion = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function clearPreferredInternationalPrefix(): PhoneMetadata
|
||||
{
|
||||
unset($this->preferredInternationalPrefix);
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function clearNationalPrefix(): PhoneMetadata
|
||||
{
|
||||
unset($this->nationalPrefix);
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function clearPreferredExtnPrefix(): PhoneMetadata
|
||||
{
|
||||
unset($this->preferredExtnPrefix);
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function clearNationalPrefixTransformRule(): PhoneMetadata
|
||||
{
|
||||
unset($this->nationalPrefixTransformRule);
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function clearSameMobileAndFixedLinePattern(): PhoneMetadata
|
||||
{
|
||||
$this->sameMobileAndFixedLinePattern = false;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function clearMobileNumberPortableRegion(): PhoneMetadata
|
||||
{
|
||||
$this->mobileNumberPortableRegion = false;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @interal
|
||||
* @param PhoneMetadataArray $input
|
||||
*/
|
||||
public function fromArray(array $input): PhoneMetadata
|
||||
{
|
||||
if (isset($input['generalDesc'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setGeneralDesc($desc->fromArray($input['generalDesc']));
|
||||
}
|
||||
|
||||
if (isset($input['fixedLine'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setFixedLine($desc->fromArray($input['fixedLine']));
|
||||
}
|
||||
|
||||
if (isset($input['mobile'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setMobile($desc->fromArray($input['mobile']));
|
||||
}
|
||||
|
||||
if (isset($input['tollFree'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setTollFree($desc->fromArray($input['tollFree']));
|
||||
}
|
||||
|
||||
if (isset($input['premiumRate'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setPremiumRate($desc->fromArray($input['premiumRate']));
|
||||
}
|
||||
|
||||
if (isset($input['sharedCost'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setSharedCost($desc->fromArray($input['sharedCost']));
|
||||
}
|
||||
|
||||
if (isset($input['personalNumber'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setPersonalNumber($desc->fromArray($input['personalNumber']));
|
||||
}
|
||||
|
||||
if (isset($input['voip'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setVoip($desc->fromArray($input['voip']));
|
||||
}
|
||||
|
||||
if (isset($input['pager'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setPager($desc->fromArray($input['pager']));
|
||||
}
|
||||
|
||||
if (isset($input['uan'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setUan($desc->fromArray($input['uan']));
|
||||
}
|
||||
|
||||
if (isset($input['emergency'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setEmergency($desc->fromArray($input['emergency']));
|
||||
}
|
||||
|
||||
if (isset($input['voicemail'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setVoicemail($desc->fromArray($input['voicemail']));
|
||||
}
|
||||
|
||||
if (isset($input['shortCode'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setShortCode($desc->fromArray($input['shortCode']));
|
||||
}
|
||||
|
||||
if (isset($input['standardRate'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setStandardRate($desc->fromArray($input['standardRate']));
|
||||
}
|
||||
|
||||
if (isset($input['carrierSpecific'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setCarrierSpecific($desc->fromArray($input['carrierSpecific']));
|
||||
}
|
||||
|
||||
if (isset($input['smsServices'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setSmsServices($desc->fromArray($input['smsServices']));
|
||||
}
|
||||
|
||||
if (isset($input['noInternationalDialling'])) {
|
||||
$desc = new PhoneNumberDesc();
|
||||
$this->setNoInternationalDialling($desc->fromArray($input['noInternationalDialling']));
|
||||
}
|
||||
|
||||
$this->setId($input['id']);
|
||||
|
||||
if (isset($input['countryCode'])) {
|
||||
$this->setCountryCode($input['countryCode']);
|
||||
}
|
||||
|
||||
if (isset($input['internationalPrefix'])) {
|
||||
$this->setInternationalPrefix($input['internationalPrefix']);
|
||||
}
|
||||
|
||||
if (isset($input['preferredInternationalPrefix'])) {
|
||||
$this->setPreferredInternationalPrefix($input['preferredInternationalPrefix']);
|
||||
}
|
||||
|
||||
if (isset($input['nationalPrefix'])) {
|
||||
$this->setNationalPrefix($input['nationalPrefix']);
|
||||
}
|
||||
|
||||
if (isset($input['preferredExtnPrefix'])) {
|
||||
$this->setPreferredExtnPrefix($input['preferredExtnPrefix']);
|
||||
}
|
||||
|
||||
if (isset($input['nationalPrefixForParsing'])) {
|
||||
$this->setNationalPrefixForParsing($input['nationalPrefixForParsing']);
|
||||
}
|
||||
|
||||
if (isset($input['nationalPrefixTransformRule'])) {
|
||||
$this->setNationalPrefixTransformRule($input['nationalPrefixTransformRule']);
|
||||
}
|
||||
|
||||
foreach ($input['numberFormat'] ?? [] as $numberFormatElt) {
|
||||
$numberFormat = new NumberFormat();
|
||||
$numberFormat->fromArray($numberFormatElt);
|
||||
$this->addNumberFormat($numberFormat);
|
||||
}
|
||||
|
||||
foreach ($input['intlNumberFormat'] ?? [] as $intlNumberFormatElt) {
|
||||
$numberFormat = new NumberFormat();
|
||||
$numberFormat->fromArray($intlNumberFormatElt);
|
||||
$this->addIntlNumberFormat($numberFormat);
|
||||
}
|
||||
|
||||
if (isset($input['mainCountryForCode'])) {
|
||||
$this->setMainCountryForCode($input['mainCountryForCode']);
|
||||
}
|
||||
|
||||
if (isset($input['leadingDigits'])) {
|
||||
$this->setLeadingDigits($input['leadingDigits']);
|
||||
}
|
||||
|
||||
if (isset($input['mobileNumberPortableRegion'])) {
|
||||
$this->setMobileNumberPortableRegion($input['mobileNumberPortableRegion']);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function addNumberFormat(NumberFormat $value): PhoneMetadata
|
||||
{
|
||||
$this->numberFormat[] = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function addIntlNumberFormat(NumberFormat $value): PhoneMetadata
|
||||
{
|
||||
$this->intlNumberFormat[] = $value;
|
||||
$this->internationalPrefix = $value;
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,13 +4,20 @@ declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
class PhoneNumber implements \Serializable, \Stringable
|
||||
use Serializable;
|
||||
|
||||
/**
|
||||
* It is not recommended to create PhoneNumber objects directly, instead you should
|
||||
* use PhoneNumberUtil::parse() to parse the number and return a PhoneNumber object
|
||||
* @no-named-arguments
|
||||
*/
|
||||
class PhoneNumber implements Serializable
|
||||
{
|
||||
/**
|
||||
* The country calling code for this number, as defined by the International Telecommunication Union
|
||||
* (ITU). For example, this would be 1 for NANPA countries, and 33 for France.
|
||||
*/
|
||||
protected int $countryCode = 0;
|
||||
protected ?int $countryCode = null;
|
||||
/**
|
||||
* National (significant) Number is defined in International Telecommunication Union (ITU)
|
||||
* Recommendation E.164. It is a language/country-neutral representation of a phone number at a
|
||||
@@ -53,12 +60,8 @@ class PhoneNumber implements \Serializable, \Stringable
|
||||
/**
|
||||
* The source from which the country_code is derived. This is not set in the general parsing method,
|
||||
* but in the method that parses and keeps raw_input. New fields could be added upon request.
|
||||
*
|
||||
* @see CountryCodeSource
|
||||
*
|
||||
* This must be one of the CountryCodeSource constants.
|
||||
*/
|
||||
protected int $countryCodeSource = CountryCodeSource::UNSPECIFIED;
|
||||
protected ?CountryCodeSource $countryCodeSource = CountryCodeSource::UNSPECIFIED;
|
||||
/**
|
||||
* The carrier selection code that is preferred when calling this phone number domestically. This
|
||||
* also includes codes that need to be dialed in some countries when calling from landlines to
|
||||
@@ -76,16 +79,8 @@ class PhoneNumber implements \Serializable, \Stringable
|
||||
* The number of leading zeros of this phone number.
|
||||
*/
|
||||
protected int $numberOfLeadingZeros = 1;
|
||||
private bool $hasCountryCode = false;
|
||||
|
||||
/**
|
||||
* Clears this phone number.
|
||||
*
|
||||
* This effectively resets this phone number to the state of a new instance.
|
||||
*
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function clear(): PhoneNumber
|
||||
public function clear(): static
|
||||
{
|
||||
$this->clearCountryCode();
|
||||
$this->clearNationalNumber();
|
||||
@@ -98,91 +93,50 @@ class PhoneNumber implements \Serializable, \Stringable
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the country code of this phone number.
|
||||
*
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function clearCountryCode(): PhoneNumber
|
||||
public function clearCountryCode(): static
|
||||
{
|
||||
$this->countryCode = 0;
|
||||
$this->hasCountryCode = false;
|
||||
$this->countryCode = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the national number of this phone number.
|
||||
*
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function clearNationalNumber(): PhoneNumber
|
||||
public function clearNationalNumber(): static
|
||||
{
|
||||
$this->nationalNumber = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the extension of this phone number.
|
||||
*
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function clearExtension(): PhoneNumber
|
||||
public function clearExtension(): static
|
||||
{
|
||||
$this->extension = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the italian leading zero information of this phone number.
|
||||
*
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function clearItalianLeadingZero(): PhoneNumber
|
||||
public function clearItalianLeadingZero(): static
|
||||
{
|
||||
$this->italianLeadingZero = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the number of leading zeros of this phone number.
|
||||
*
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function clearNumberOfLeadingZeros(): PhoneNumber
|
||||
public function clearNumberOfLeadingZeros(): static
|
||||
{
|
||||
$this->hasNumberOfLeadingZeros = false;
|
||||
$this->numberOfLeadingZeros = 1;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the raw input of this phone number.
|
||||
*
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function clearRawInput(): PhoneNumber
|
||||
public function clearRawInput(): static
|
||||
{
|
||||
$this->rawInput = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the country code source of this phone number.
|
||||
*
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function clearCountryCodeSource(): PhoneNumber
|
||||
public function clearCountryCodeSource(): static
|
||||
{
|
||||
$this->countryCodeSource = CountryCodeSource::UNSPECIFIED;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the preferred domestic carrier code of this phone number.
|
||||
*
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function clearPreferredDomesticCarrierCode(): PhoneNumber
|
||||
public function clearPreferredDomesticCarrierCode(): static
|
||||
{
|
||||
$this->preferredDomesticCarrierCode = null;
|
||||
return $this;
|
||||
@@ -190,12 +144,8 @@ class PhoneNumber implements \Serializable, \Stringable
|
||||
|
||||
/**
|
||||
* Merges the information from another phone number into this phone number.
|
||||
*
|
||||
* @param PhoneNumber $other The phone number to copy.
|
||||
*
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function mergeFrom(PhoneNumber $other): PhoneNumber
|
||||
public function mergeFrom(PhoneNumber $other): static
|
||||
{
|
||||
if ($other->hasCountryCode()) {
|
||||
$this->setCountryCode($other->getCountryCode());
|
||||
@@ -224,114 +174,60 @@ class PhoneNumber implements \Serializable, \Stringable
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this phone number has a country code set.
|
||||
*
|
||||
* @return bool True if a country code is set, false otherwise.
|
||||
*/
|
||||
public function hasCountryCode(): bool
|
||||
{
|
||||
return $this->hasCountryCode;
|
||||
return $this->countryCode !== null;
|
||||
}
|
||||
|
||||
public function getCountryCode(): int
|
||||
public function getCountryCode(): ?int
|
||||
{
|
||||
return $this->countryCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the country code of this phone number.
|
||||
*
|
||||
* @param int $value The country code.
|
||||
*
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function setCountryCode(int $value): PhoneNumber
|
||||
public function setCountryCode(int $value): static
|
||||
{
|
||||
$this->hasCountryCode = true;
|
||||
$this->countryCode = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this phone number has a national number set.
|
||||
*
|
||||
* @return bool True if a national number is set, false otherwise.
|
||||
*/
|
||||
public function hasNationalNumber(): bool
|
||||
{
|
||||
return $this->nationalNumber !== null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the national number of this phone number.
|
||||
*
|
||||
* @return string|null The national number, or null if not set.
|
||||
*/
|
||||
public function getNationalNumber(): ?string
|
||||
{
|
||||
return $this->nationalNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the national number of this phone number.
|
||||
*
|
||||
* @param string $value The national number.
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function setNationalNumber(string $value): PhoneNumber
|
||||
public function setNationalNumber(string $value): static
|
||||
{
|
||||
$this->nationalNumber = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this phone number has an extension set.
|
||||
*
|
||||
* @return bool True if an extension is set, false otherwise.
|
||||
*/
|
||||
public function hasExtension(): bool
|
||||
{
|
||||
return $this->extension !== null;
|
||||
return isset($this->extension) && $this->extension !== '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the extension of this phone number.
|
||||
*
|
||||
* @return string|null The extension, or null if not set.
|
||||
*/
|
||||
public function getExtension(): ?string
|
||||
{
|
||||
return $this->extension;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the extension of this phone number.
|
||||
*
|
||||
* @param string $value The extension.
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function setExtension(string $value): PhoneNumber
|
||||
public function setExtension(string $value): static
|
||||
{
|
||||
$this->extension = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this phone number has the italian leading zero information set.
|
||||
*/
|
||||
public function hasItalianLeadingZero(): bool
|
||||
{
|
||||
return $this->italianLeadingZero !== null;
|
||||
return isset($this->italianLeadingZero);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets whether this phone number uses an italian leading zero.
|
||||
*
|
||||
* @param bool $value True to use italian leading zero, false otherwise.
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function setItalianLeadingZero(bool $value): PhoneNumber
|
||||
public function setItalianLeadingZero(bool $value): static
|
||||
{
|
||||
$this->italianLeadingZero = $value;
|
||||
return $this;
|
||||
@@ -340,137 +236,73 @@ class PhoneNumber implements \Serializable, \Stringable
|
||||
/**
|
||||
* Returns whether this phone number uses an italian leading zero.
|
||||
*
|
||||
* @return bool|null True if it uses an italian leading zero, false if it does not, null if not set.
|
||||
* @return bool|null True if it uses an italian leading zero, false it it does not, null if not set.
|
||||
*/
|
||||
public function isItalianLeadingZero(): ?bool
|
||||
{
|
||||
return $this->italianLeadingZero;
|
||||
return $this->italianLeadingZero ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this phone number has a number of leading zeros set.
|
||||
*
|
||||
* @return bool True if a number of leading zeros is set, false otherwise.
|
||||
*/
|
||||
public function hasNumberOfLeadingZeros(): bool
|
||||
{
|
||||
return $this->hasNumberOfLeadingZeros;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of leading zeros of this phone number.
|
||||
*
|
||||
* @return int The number of leading zeros.
|
||||
*/
|
||||
public function getNumberOfLeadingZeros(): int
|
||||
{
|
||||
return $this->numberOfLeadingZeros;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the number of leading zeros of this phone number.
|
||||
*
|
||||
* @param int $value The number of leading zeros.
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function setNumberOfLeadingZeros(int $value): PhoneNumber
|
||||
public function setNumberOfLeadingZeros(int $value): static
|
||||
{
|
||||
$this->hasNumberOfLeadingZeros = true;
|
||||
$this->numberOfLeadingZeros = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this phone number has a raw input.
|
||||
*
|
||||
* @return bool True if a raw input is set, false otherwise.
|
||||
*/
|
||||
public function hasRawInput(): bool
|
||||
{
|
||||
return $this->rawInput !== null;
|
||||
return isset($this->rawInput);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw input of this phone number.
|
||||
*
|
||||
* @return string|null The raw input, or null if not set.
|
||||
*/
|
||||
public function getRawInput(): ?string
|
||||
{
|
||||
return $this->rawInput;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the raw input of this phone number.
|
||||
*
|
||||
* @param string $value The raw input.
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function setRawInput(string $value): PhoneNumber
|
||||
public function setRawInput(string $value): static
|
||||
{
|
||||
$this->rawInput = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this phone number has a country code source.
|
||||
*
|
||||
* @return bool True if a country code source is set, false otherwise.
|
||||
*/
|
||||
public function hasCountryCodeSource(): bool
|
||||
{
|
||||
return $this->countryCodeSource !== CountryCodeSource::UNSPECIFIED;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the country code source of this phone number.
|
||||
*
|
||||
* @return int|null A CountryCodeSource constant, or null if not set.
|
||||
*/
|
||||
public function getCountryCodeSource(): ?int
|
||||
public function getCountryCodeSource(): ?CountryCodeSource
|
||||
{
|
||||
return $this->countryCodeSource;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the country code source of this phone number.
|
||||
*
|
||||
* @param int $value A CountryCodeSource constant.
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function setCountryCodeSource(int $value): PhoneNumber
|
||||
public function setCountryCodeSource(CountryCodeSource $value): static
|
||||
{
|
||||
$this->countryCodeSource = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this phone number has a preferred domestic carrier code.
|
||||
*
|
||||
* @return bool True if a preferred domestic carrier code is set, false otherwise.
|
||||
*/
|
||||
public function hasPreferredDomesticCarrierCode(): bool
|
||||
{
|
||||
return $this->preferredDomesticCarrierCode !== null;
|
||||
return isset($this->preferredDomesticCarrierCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the preferred domestic carrier code of this phone number.
|
||||
*
|
||||
* @return string|null The preferred domestic carrier code, or null if not set.
|
||||
*/
|
||||
public function getPreferredDomesticCarrierCode(): ?string
|
||||
{
|
||||
return $this->preferredDomesticCarrierCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the preferred domestic carrier code of this phone number.
|
||||
*
|
||||
* @param string $value The preferred domestic carrier code.
|
||||
* @return PhoneNumber This PhoneNumber instance, for chaining method calls.
|
||||
*/
|
||||
public function setPreferredDomesticCarrierCode(string $value): PhoneNumber
|
||||
public function setPreferredDomesticCarrierCode(string $value): static
|
||||
{
|
||||
$this->preferredDomesticCarrierCode = $value;
|
||||
return $this;
|
||||
@@ -516,7 +348,7 @@ class PhoneNumber implements \Serializable, \Stringable
|
||||
$outputString .= ' Extension: ' . $this->extension;
|
||||
}
|
||||
if ($this->hasCountryCodeSource()) {
|
||||
$outputString .= ' Country Code Source: ' . $this->countryCodeSource;
|
||||
$outputString .= ' Country Code Source: ' . $this->countryCodeSource->name;
|
||||
}
|
||||
if ($this->hasPreferredDomesticCarrierCode()) {
|
||||
$outputString .= ' Preferred Domestic Carrier Code: ' . $this->preferredDomesticCarrierCode;
|
||||
@@ -524,17 +356,11 @@ class PhoneNumber implements \Serializable, \Stringable
|
||||
return $outputString;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function serialize(): ?string
|
||||
{
|
||||
return serialize($this->__serialize());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array{?int,?string,?string,?bool,int,?string,int,?string}
|
||||
*/
|
||||
public function __serialize(): array
|
||||
{
|
||||
return [
|
||||
@@ -549,16 +375,13 @@ class PhoneNumber implements \Serializable, \Stringable
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function unserialize($data)
|
||||
public function unserialize($data): void
|
||||
{
|
||||
$this->__unserialize(unserialize($data, ['allowed_classes' => [__CLASS__]]));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array{int,?string,?string,?bool,int,?string,int,?string} $data
|
||||
* @param array{int,string,string,bool|null,int,string|null,CountryCodeSource|null,string|null} $data
|
||||
*/
|
||||
public function __unserialize(array $data): void
|
||||
{
|
||||
@@ -569,10 +392,16 @@ class PhoneNumber implements \Serializable, \Stringable
|
||||
$this->italianLeadingZero,
|
||||
$this->numberOfLeadingZeros,
|
||||
$this->rawInput,
|
||||
$this->countryCodeSource,
|
||||
$countryCodeSource,
|
||||
$this->preferredDomesticCarrierCode
|
||||
] = $data;
|
||||
|
||||
// BC layer to allow this method to unserialize "old" phonenumbers
|
||||
if (is_int($countryCodeSource)) {
|
||||
$countryCodeSource = CountryCodeSource::from($countryCodeSource);
|
||||
}
|
||||
$this->countryCodeSource = $countryCodeSource;
|
||||
|
||||
if ($this->numberOfLeadingZeros > 1) {
|
||||
$this->hasNumberOfLeadingZeros = true;
|
||||
}
|
||||
|
||||
@@ -6,8 +6,7 @@ namespace libphonenumber;
|
||||
|
||||
/**
|
||||
* Phone Number Description
|
||||
* @interal
|
||||
* @phpstan-type PhoneNumberDescArray array{pattern?:string,example?:string,posLength?:int[],posLengthLocal?:int[]}
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberDesc
|
||||
{
|
||||
@@ -24,21 +23,6 @@ class PhoneNumberDesc
|
||||
*/
|
||||
protected array $possibleLengthLocalOnly = [];
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->clear();
|
||||
}
|
||||
|
||||
public function clear(): PhoneNumberDesc
|
||||
{
|
||||
$this->clearNationalNumberPattern();
|
||||
$this->clearPossibleLength();
|
||||
$this->clearPossibleLengthLocalOnly();
|
||||
$this->clearExampleNumber();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int[]
|
||||
*/
|
||||
@@ -50,14 +34,15 @@ class PhoneNumberDesc
|
||||
/**
|
||||
* @param int[] $possibleLength
|
||||
*/
|
||||
public function setPossibleLength(array $possibleLength): void
|
||||
public function setPossibleLength(array $possibleLength): static
|
||||
{
|
||||
$this->possibleLength = $possibleLength;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function addPossibleLength(int $possibleLength): void
|
||||
{
|
||||
if (!in_array($possibleLength, $this->possibleLength)) {
|
||||
if (!in_array($possibleLength, $this->possibleLength, true)) {
|
||||
$this->possibleLength[] = $possibleLength;
|
||||
}
|
||||
}
|
||||
@@ -78,14 +63,16 @@ class PhoneNumberDesc
|
||||
/**
|
||||
* @param int[] $possibleLengthLocalOnly
|
||||
*/
|
||||
public function setPossibleLengthLocalOnly(array $possibleLengthLocalOnly): void
|
||||
public function setPossibleLengthLocalOnly(array $possibleLengthLocalOnly): static
|
||||
{
|
||||
$this->possibleLengthLocalOnly = $possibleLengthLocalOnly;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function addPossibleLengthLocalOnly(int $possibleLengthLocalOnly): void
|
||||
{
|
||||
if (!in_array($possibleLengthLocalOnly, $this->possibleLengthLocalOnly)) {
|
||||
if (!in_array($possibleLengthLocalOnly, $this->possibleLengthLocalOnly, true)) {
|
||||
$this->possibleLengthLocalOnly[] = $possibleLengthLocalOnly;
|
||||
}
|
||||
}
|
||||
@@ -95,6 +82,9 @@ class PhoneNumberDesc
|
||||
$this->possibleLengthLocalOnly = [];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
*/
|
||||
public function hasNationalNumberPattern(): bool
|
||||
{
|
||||
return $this->hasNationalNumberPattern;
|
||||
@@ -105,7 +95,7 @@ class PhoneNumberDesc
|
||||
return $this->nationalNumberPattern;
|
||||
}
|
||||
|
||||
public function setNationalNumberPattern(string $value): PhoneNumberDesc
|
||||
public function setNationalNumberPattern(string $value): static
|
||||
{
|
||||
$this->hasNationalNumberPattern = true;
|
||||
$this->nationalNumberPattern = $value;
|
||||
@@ -113,13 +103,6 @@ class PhoneNumberDesc
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function clearNationalNumberPattern(): PhoneNumberDesc
|
||||
{
|
||||
$this->hasNationalNumberPattern = false;
|
||||
$this->nationalNumberPattern = '';
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function hasExampleNumber(): bool
|
||||
{
|
||||
return $this->hasExampleNumber;
|
||||
@@ -130,7 +113,7 @@ class PhoneNumberDesc
|
||||
return $this->exampleNumber;
|
||||
}
|
||||
|
||||
public function setExampleNumber(string $value): PhoneNumberDesc
|
||||
public function setExampleNumber(string $value): static
|
||||
{
|
||||
$this->hasExampleNumber = true;
|
||||
$this->exampleNumber = $value;
|
||||
@@ -138,80 +121,20 @@ class PhoneNumberDesc
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function clearExampleNumber(): self
|
||||
{
|
||||
$this->hasExampleNumber = false;
|
||||
$this->exampleNumber = '';
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function mergeFrom(PhoneNumberDesc $other): self
|
||||
{
|
||||
if ($other->hasNationalNumberPattern()) {
|
||||
$this->setNationalNumberPattern($other->getNationalNumberPattern());
|
||||
}
|
||||
if ($other->hasExampleNumber()) {
|
||||
$this->setExampleNumber($other->getExampleNumber());
|
||||
}
|
||||
$this->setPossibleLength($other->getPossibleLength());
|
||||
$this->setPossibleLengthLocalOnly($other->getPossibleLengthLocalOnly());
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function exactlySameAs(PhoneNumberDesc $other): bool
|
||||
{
|
||||
return $this->nationalNumberPattern === $other->nationalNumberPattern &&
|
||||
$this->exampleNumber === $other->exampleNumber;
|
||||
}
|
||||
private static self $emptyObject;
|
||||
|
||||
/**
|
||||
* Used for metadata as a shortcut to an empty object
|
||||
* Use the same object to reduce load further
|
||||
* @internal
|
||||
* @return PhoneNumberDescArray
|
||||
*/
|
||||
public function toArray(): array
|
||||
public static function empty(): self
|
||||
{
|
||||
$data = [];
|
||||
if ($this->hasNationalNumberPattern()) {
|
||||
$data['pattern'] = $this->getNationalNumberPattern();
|
||||
}
|
||||
if ($this->hasExampleNumber()) {
|
||||
$data['example'] = $this->getExampleNumber();
|
||||
if (!isset(self::$emptyObject)) {
|
||||
self::$emptyObject = (new self())
|
||||
->setPossibleLength([-1]);
|
||||
}
|
||||
|
||||
$possibleLength = $this->getPossibleLength();
|
||||
if (!empty($possibleLength)) {
|
||||
$data['posLength'] = $possibleLength;
|
||||
}
|
||||
|
||||
$possibleLengthLocalOnly = $this->getPossibleLengthLocalOnly();
|
||||
if (!empty($possibleLengthLocalOnly)) {
|
||||
$data['posLengthLocal'] = $possibleLengthLocalOnly;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @param PhoneNumberDescArray $input
|
||||
*/
|
||||
public function fromArray(array $input): static
|
||||
{
|
||||
if (isset($input['pattern']) && $input['pattern'] !== '') {
|
||||
$this->setNationalNumberPattern($input['pattern']);
|
||||
}
|
||||
if (isset($input['example']) && $input['example'] !== '') {
|
||||
$this->setExampleNumber($input['example']);
|
||||
}
|
||||
if (isset($input['posLength'])) {
|
||||
$this->setPossibleLength($input['posLength']);
|
||||
}
|
||||
if (isset($input['posLengthLocal'])) {
|
||||
$this->setPossibleLengthLocalOnly($input['posLengthLocal']);
|
||||
}
|
||||
|
||||
return $this;
|
||||
return self::$emptyObject;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
/**
|
||||
@@ -14,10 +16,10 @@ namespace libphonenumber;
|
||||
* Note: If you are considering storing the number in a neutral format, you are highly advised to
|
||||
* use the PhoneNumber class.
|
||||
*/
|
||||
class PhoneNumberFormat
|
||||
enum PhoneNumberFormat: int
|
||||
{
|
||||
public const E164 = 0;
|
||||
public const INTERNATIONAL = 1;
|
||||
public const NATIONAL = 2;
|
||||
public const RFC3966 = 3;
|
||||
case E164 = 0;
|
||||
case INTERNATIONAL = 1;
|
||||
case NATIONAL = 2;
|
||||
case RFC3966 = 3;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,15 @@ declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
class PhoneNumberMatch implements \Stringable
|
||||
use InvalidArgumentException;
|
||||
use Stringable;
|
||||
|
||||
use function mb_strlen;
|
||||
|
||||
/**
|
||||
* @no-named-arguments
|
||||
*/
|
||||
class PhoneNumberMatch implements Stringable
|
||||
{
|
||||
/**
|
||||
* The start index into the text.
|
||||
@@ -16,6 +24,11 @@ class PhoneNumberMatch implements \Stringable
|
||||
*/
|
||||
private string $rawString;
|
||||
|
||||
/**
|
||||
* The matched phone number.
|
||||
*/
|
||||
private PhoneNumber $number;
|
||||
|
||||
/**
|
||||
* Creates a new match
|
||||
*
|
||||
@@ -23,14 +36,15 @@ class PhoneNumberMatch implements \Stringable
|
||||
* @param string $rawString The matched substring of the target text
|
||||
* @param PhoneNumber $number The matched phone number
|
||||
*/
|
||||
public function __construct(int $start, string $rawString, private PhoneNumber $number)
|
||||
public function __construct(int $start, string $rawString, PhoneNumber $number)
|
||||
{
|
||||
if ($start < 0) {
|
||||
throw new \InvalidArgumentException('Start index must be >= 0.');
|
||||
throw new InvalidArgumentException('Start index must be >= 0.');
|
||||
}
|
||||
|
||||
$this->start = $start;
|
||||
$this->rawString = $rawString;
|
||||
$this->number = $number;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -54,7 +68,7 @@ class PhoneNumberMatch implements \Stringable
|
||||
*/
|
||||
public function end(): int
|
||||
{
|
||||
return $this->start + \mb_strlen($this->rawString);
|
||||
return $this->start + mb_strlen($this->rawString);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -65,7 +79,7 @@ class PhoneNumberMatch implements \Stringable
|
||||
return $this->rawString;
|
||||
}
|
||||
|
||||
public function __toString(): string
|
||||
public function __toString()
|
||||
{
|
||||
return "PhoneNumberMatch [{$this->start()},{$this->end()}) {$this->rawString}";
|
||||
}
|
||||
|
||||
@@ -1,71 +1,56 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
/**
|
||||
* Type of phone numbers.
|
||||
*/
|
||||
class PhoneNumberType
|
||||
enum PhoneNumberType: int
|
||||
{
|
||||
public const FIXED_LINE = 0;
|
||||
public const MOBILE = 1;
|
||||
// In some regions (e.g. the USA), it is impossible to distinguish between fixed-line and
|
||||
// mobile numbers by looking at the phone number itself.
|
||||
public const FIXED_LINE_OR_MOBILE = 2;
|
||||
// Freephone lines
|
||||
public const TOLL_FREE = 3;
|
||||
public const PREMIUM_RATE = 4;
|
||||
// The cost of this call is shared between the caller and the recipient, and is hence typically
|
||||
// less than PREMIUM_RATE calls. See // http://en.wikipedia.org/wiki/Shared_Cost_Service for
|
||||
// more information.
|
||||
public const SHARED_COST = 5;
|
||||
// Voice over IP numbers. This includes TSoIP (Telephony Service over IP).
|
||||
public const VOIP = 6;
|
||||
// A personal number is associated with a particular person, and may be routed to either a
|
||||
// MOBILE or FIXED_LINE number. Some more information can be found here:
|
||||
// http://en.wikipedia.org/wiki/Personal_Numbers
|
||||
public const PERSONAL_NUMBER = 7;
|
||||
public const PAGER = 8;
|
||||
// Used for "Universal Access Numbers" or "Company Numbers". They may be further routed to
|
||||
// specific offices, but allow one number to be used for a company.
|
||||
public const UAN = 9;
|
||||
// A phone number is of type UNKNOWN when it does not fit any of the known patterns for a
|
||||
// specific region.
|
||||
public const UNKNOWN = 10;
|
||||
|
||||
// Emergency
|
||||
public const EMERGENCY = 27;
|
||||
|
||||
// Voicemail
|
||||
public const VOICEMAIL = 28;
|
||||
|
||||
// Short Code
|
||||
public const SHORT_CODE = 29;
|
||||
|
||||
// Standard Rate
|
||||
public const STANDARD_RATE = 30;
|
||||
|
||||
case FIXED_LINE = 0;
|
||||
case MOBILE = 1;
|
||||
/**
|
||||
* @return array<int,string>
|
||||
* In some regions (e.g. the USA), it is impossible to distinguish between fixed-line and
|
||||
* mobile numbers by looking at the phone number itself.
|
||||
*/
|
||||
public static function values(): array
|
||||
{
|
||||
return [
|
||||
self::FIXED_LINE => 'FIXED_LINE',
|
||||
self::MOBILE => 'MOBILE',
|
||||
self::FIXED_LINE_OR_MOBILE => 'FIXED_LINE_OR_MOBILE',
|
||||
self::TOLL_FREE => 'TOLL_FREE',
|
||||
self::PREMIUM_RATE => 'PREMIUM_RATE',
|
||||
self::SHARED_COST => 'SHARED_COST',
|
||||
self::VOIP => 'VOIP',
|
||||
self::PERSONAL_NUMBER => 'PERSONAL_NUMBER',
|
||||
self::PAGER => 'PAGER',
|
||||
self::UAN => 'UAN',
|
||||
self::UNKNOWN => 'UNKNOWN',
|
||||
self::EMERGENCY => 'EMERGENCY',
|
||||
self::VOICEMAIL => 'VOICEMAIL',
|
||||
self::SHORT_CODE => 'SHORT_CODE',
|
||||
self::STANDARD_RATE => 'STANDARD_RATE',
|
||||
];
|
||||
}
|
||||
case FIXED_LINE_OR_MOBILE = 2;
|
||||
/**
|
||||
* Freephone lines
|
||||
*/
|
||||
case TOLL_FREE = 3;
|
||||
case PREMIUM_RATE = 4;
|
||||
/**
|
||||
* The cost of this call is shared between the caller and the recipient, and is hence typically
|
||||
* less than PREMIUM_RATE calls. See // http://en.wikipedia.org/wiki/Shared_Cost_Service for
|
||||
* more information.
|
||||
*/
|
||||
case SHARED_COST = 5;
|
||||
/**
|
||||
* Voice over IP numbers. This includes TSoIP (Telephony Service over IP).
|
||||
*/
|
||||
case VOIP = 6;
|
||||
/**
|
||||
* A personal number is associated with a particular person, and may be routed to either a
|
||||
* MOBILE or FIXED_LINE number. Some more information can be found here:
|
||||
* http://en.wikipedia.org/wiki/Personal_Numbers
|
||||
*/
|
||||
case PERSONAL_NUMBER = 7;
|
||||
case PAGER = 8;
|
||||
/**
|
||||
* Used for "Universal Access Numbers" or "Company Numbers". They may be further routed to
|
||||
* specific offices, but allow one number to be used for a company.
|
||||
*/
|
||||
case UAN = 9;
|
||||
/**
|
||||
* A phone number is of type UNKNOWN when it does not fit any of the known patterns for a
|
||||
* specific region.
|
||||
*/
|
||||
case UNKNOWN = 10;
|
||||
|
||||
case EMERGENCY = 27;
|
||||
case VOICEMAIL = 28;
|
||||
case SHORT_CODE = 29;
|
||||
case STANDARD_RATE = 30;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -11,14 +11,6 @@ namespace libphonenumber;
|
||||
*/
|
||||
class RegexBasedMatcher implements MatcherAPIInterface
|
||||
{
|
||||
public static function create(): static
|
||||
{
|
||||
return new static();
|
||||
}
|
||||
|
||||
// Keep PHPStan happy (Unsafe usage of new static())
|
||||
final public function __construct() {}
|
||||
|
||||
/**
|
||||
* Returns whether the given national number (a string containing only decimal digits) matches
|
||||
* the national number pattern defined in the given {@code PhoneNumberDesc} message.
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
/**
|
||||
* Cost categories of short numbers
|
||||
* @package libphonenumber
|
||||
*/
|
||||
class ShortNumberCost
|
||||
enum ShortNumberCost: int
|
||||
{
|
||||
public const TOLL_FREE = 3;
|
||||
public const PREMIUM_RATE = 4;
|
||||
public const STANDARD_RATE = 30;
|
||||
public const UNKNOWN_COST = 10;
|
||||
case TOLL_FREE = 3;
|
||||
case PREMIUM_RATE = 4;
|
||||
case STANDARD_RATE = 30;
|
||||
case UNKNOWN_COST = 10;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Methods for getting information about short phone numbers, such as short codes and emergency
|
||||
* numbers. Note that most commercial short numbers are not handled here, but by the
|
||||
@@ -12,46 +14,43 @@
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
use RuntimeException;
|
||||
|
||||
/**
|
||||
* @phpstan-consistent-constructor
|
||||
* @no-named-arguments
|
||||
*/
|
||||
class ShortNumberInfo
|
||||
{
|
||||
protected static ?ShortNumberInfo $instance;
|
||||
protected MatcherAPIInterface $matcherAPI;
|
||||
protected string $currentFilePrefix;
|
||||
/**
|
||||
* @var array<string,PhoneMetadata>
|
||||
*/
|
||||
protected array $regionToMetadataMap = [];
|
||||
/**
|
||||
* @var array<int,string[]>
|
||||
*/
|
||||
protected array $countryCallingCodeToRegionCodeMap = [];
|
||||
/**
|
||||
* @var array<int,PhoneMetadata>
|
||||
*/
|
||||
protected array $countryCodeToNonGeographicalMetadataMap = [];
|
||||
protected const REGIONS_WHERE_EMERGENCY_NUMBERS_MUST_BE_EXACT = [
|
||||
'BR',
|
||||
'CL',
|
||||
'NI',
|
||||
];
|
||||
|
||||
protected function __construct(MatcherAPIInterface $matcherAPI)
|
||||
{
|
||||
$this->matcherAPI = $matcherAPI;
|
||||
|
||||
protected function __construct(
|
||||
protected MatcherAPIInterface $matcherAPI,
|
||||
protected MetadataSourceInterface $metadataSource = new MultiFileMetadataSourceImpl(__NAMESPACE__ . '\data\ShortNumberMetadata_'),
|
||||
) {
|
||||
// TODO: Create ShortNumberInfo for a given map
|
||||
$this->countryCallingCodeToRegionCodeMap = CountryCodeToRegionCodeMap::COUNTRY_CODE_TO_REGION_CODE_MAP;
|
||||
|
||||
$this->currentFilePrefix = __DIR__ . '/data/ShortNumberMetadata';
|
||||
|
||||
// Initialise PhoneNumberUtil to make sure regex's are setup correctly
|
||||
PhoneNumberUtil::getInstance();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the singleton instance of ShortNumberInfo
|
||||
*/
|
||||
public static function getInstance(): ShortNumberInfo
|
||||
{
|
||||
if (!isset(static::$instance)) {
|
||||
static::$instance = new self(RegexBasedMatcher::create());
|
||||
static::$instance = new self(new RegexBasedMatcher());
|
||||
}
|
||||
|
||||
return static::$instance;
|
||||
@@ -78,15 +77,15 @@ class ShortNumberInfo
|
||||
* Helper method to check that the country calling code of the number matches the region it's
|
||||
* being dialed from.
|
||||
*/
|
||||
protected function regionDialingFromMatchesNumber(PhoneNumber $number, string $regionDialingFrom): bool
|
||||
protected function regionDialingFromMatchesNumber(PhoneNumber $number, ?string $regionDialingFrom): bool
|
||||
{
|
||||
if (trim($regionDialingFrom) === '') {
|
||||
if ($regionDialingFrom === null || $regionDialingFrom === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
$regionCodes = $this->getRegionCodesForCountryCode($number->getCountryCode());
|
||||
|
||||
return in_array(strtoupper($regionDialingFrom), $regionCodes);
|
||||
return in_array(strtoupper($regionDialingFrom), $regionCodes, true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -100,9 +99,9 @@ class ShortNumberInfo
|
||||
/**
|
||||
* Gets a valid short number for the specified region.
|
||||
*
|
||||
* @param $regionCode string the region for which an example short number is needed
|
||||
* @param $regionCode String the region for which an example short number is needed
|
||||
* @return string a valid short number for the specified region. Returns an empty string when the
|
||||
* metadata does not contain such information.
|
||||
* metadata does not contain such information.
|
||||
*/
|
||||
public function getExampleShortNumber(string $regionCode): string
|
||||
{
|
||||
@@ -123,36 +122,14 @@ class ShortNumberInfo
|
||||
{
|
||||
$regionCode = strtoupper($regionCode);
|
||||
|
||||
if (!in_array($regionCode, ShortNumbersRegionCodeSet::SHORT_NUMBERS_REGION_CODE_SET)) {
|
||||
if (!in_array($regionCode, ShortNumbersRegionCodeSet::SHORT_NUMBERS_REGION_CODE_SET, true)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!isset($this->regionToMetadataMap[$regionCode])) {
|
||||
// The regionCode here will be valid and won't be '001', so we don't need to worry about
|
||||
// what to pass in for the country calling code.
|
||||
$this->loadMetadataFromFile($this->currentFilePrefix, $regionCode, 0);
|
||||
}
|
||||
|
||||
return $this->regionToMetadataMap[$regionCode] ?? null;
|
||||
}
|
||||
|
||||
protected function loadMetadataFromFile(string $filePrefix, string $regionCode, int $countryCallingCode): void
|
||||
{
|
||||
$isNonGeoRegion = PhoneNumberUtil::REGION_CODE_FOR_NON_GEO_ENTITY === $regionCode;
|
||||
$fileName = $filePrefix . '_' . ($isNonGeoRegion ? $countryCallingCode : $regionCode) . '.php';
|
||||
if (!is_readable($fileName)) {
|
||||
throw new \Exception('missing metadata: ' . $fileName);
|
||||
}
|
||||
|
||||
$metadataLoader = new DefaultMetadataLoader();
|
||||
$data = $metadataLoader->loadMetadata($fileName);
|
||||
|
||||
$metadata = new PhoneMetadata();
|
||||
$metadata->fromArray($data);
|
||||
if ($isNonGeoRegion) {
|
||||
$this->countryCodeToNonGeographicalMetadataMap[$countryCallingCode] = $metadata;
|
||||
} else {
|
||||
$this->regionToMetadataMap[$regionCode] = $metadata;
|
||||
try {
|
||||
return $this->metadataSource->getMetadataForRegion($regionCode);
|
||||
} catch (RuntimeException) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,18 +137,17 @@ class ShortNumberInfo
|
||||
* Gets a valid short number for the specified cost category.
|
||||
*
|
||||
* @param string $regionCode the region for which an example short number is needed
|
||||
* @param int $cost the ShortNumberCost category of number that is needed
|
||||
* @param ShortNumberCost $cost the cost category of number that is needed
|
||||
* @return string a valid short number for the specified region and cost category. Returns an empty string
|
||||
* when the metadata does not contain such information, or the cost is UNKNOWN_COST.
|
||||
* when the metadata does not contain such information, or the cost is UNKNOWN_COST.
|
||||
*/
|
||||
public function getExampleShortNumberForCost(string $regionCode, int $cost): string
|
||||
public function getExampleShortNumberForCost(string $regionCode, ShortNumberCost $cost): string
|
||||
{
|
||||
$phoneMetadata = $this->getMetadataForRegion($regionCode);
|
||||
if ($phoneMetadata === null) {
|
||||
return '';
|
||||
}
|
||||
|
||||
/** @var PhoneNumberDesc $desc */
|
||||
$desc = null;
|
||||
switch ($cost) {
|
||||
case ShortNumberCost::TOLL_FREE:
|
||||
@@ -207,15 +183,13 @@ class ShortNumberInfo
|
||||
*
|
||||
* @param string $number the phone number to test
|
||||
* @param string $regionCode the region where the phone number if being dialled
|
||||
* @return boolean whether the number might be used to connect to an emergency service in the given region
|
||||
* @return bool whether the number might be used to connect to an emergency service in the given region
|
||||
*/
|
||||
public function connectsToEmergencyNumber(string $number, string $regionCode): bool
|
||||
{
|
||||
return $this->matchesEmergencyNumberHelper($number, $regionCode, true /* allows prefix match */);
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
protected function matchesEmergencyNumberHelper(string $number, string $regionCode, bool $allowPrefixMatch): bool
|
||||
{
|
||||
$number = PhoneNumberUtil::extractPossibleNumber($number);
|
||||
@@ -237,7 +211,7 @@ class ShortNumberInfo
|
||||
|
||||
$allowPrefixMatchForRegion = (
|
||||
$allowPrefixMatch
|
||||
&& !in_array(strtoupper($regionCode), static::REGIONS_WHERE_EMERGENCY_NUMBERS_MUST_BE_EXACT)
|
||||
&& !in_array(strtoupper($regionCode), static::REGIONS_WHERE_EMERGENCY_NUMBERS_MUST_BE_EXACT, true)
|
||||
);
|
||||
|
||||
return $this->matcherAPI->matchNationalNumber($normalizedNumber, $emergencyDesc, $allowPrefixMatchForRegion);
|
||||
@@ -247,12 +221,12 @@ class ShortNumberInfo
|
||||
* Given a valid short number, determines whether it is carrier-specific (however, nothing is
|
||||
* implied about its validity). Carrier-specific numbers may connect to a different end-point, or
|
||||
* not connect at all, depending on the user's carrier. If it is important that the number is
|
||||
* valid, then its validity must first be checked using {@link #isValidShortNumber} or
|
||||
* {@link #isValidShortNumberForRegion}.
|
||||
* valid, then its validity must first be checked using {@see isValidShortNumber} or
|
||||
* {@see isValidShortNumberForRegion}.
|
||||
*
|
||||
* @param PhoneNumber $number the valid short number to check
|
||||
* @return boolean whether the short number is carrier-specific, assuming the input was a valid short
|
||||
* number
|
||||
* @return bool whether the short number is carrier-specific, assuming the input was a valid short
|
||||
* number
|
||||
*/
|
||||
public function isCarrierSpecific(PhoneNumber $number): bool
|
||||
{
|
||||
@@ -272,12 +246,12 @@ class ShortNumberInfo
|
||||
* given region (however, nothing is implied about its validity). Carrier-specific numbers may
|
||||
* connect to a different end-point, or not connect at all, depending on the user's carrier. If
|
||||
* it is important that the number is valid, then its validity must first be checked using
|
||||
* {@link #isValidShortNumber} or {@link #isValidShortNumberForRegion}. Returns false if the
|
||||
* {@see isValidShortNumber} or {@see isValidShortNumberForRegion}. Returns false if the
|
||||
* number doesn't match the region provided.
|
||||
* @param PhoneNumber $number The valid short number to check
|
||||
* @param string $regionDialingFrom The region from which the number is dialed
|
||||
* @return bool Whether the short number is carrier-specific in the provided region, assuming the
|
||||
* input was a valid short number
|
||||
* input was a valid short number
|
||||
*/
|
||||
public function isCarrierSpecificForRegion(PhoneNumber $number, string $regionDialingFrom): bool
|
||||
{
|
||||
@@ -297,13 +271,13 @@ class ShortNumberInfo
|
||||
* implied about its validity). An SMS service is where the primary or only intended usage is to
|
||||
* receive and/or send text messages (SMSs). This includes MMS as MMS numbers downgrade to SMS if
|
||||
* the other party isn't MMS-capable. If it is important that the number is valid, then its
|
||||
* validity must first be checked using {@link #isValidShortNumber} or {@link
|
||||
* #isValidShortNumberForRegion}. Returns false if the number doesn't match the region provided.
|
||||
* validity must first be checked using {@see isValidShortNumber} or {@see isValidShortNumberForRegion}.
|
||||
* Returns false if the number doesn't match the region provided.
|
||||
*
|
||||
* @param PhoneNumber $number The valid short number to check
|
||||
* @param string $regionDialingFrom The region from which the number is dialed
|
||||
* @return bool Whether the short number is an SMS service in the provided region, assuming the input
|
||||
* was a valid short number.
|
||||
* was a valid short number.
|
||||
*/
|
||||
public function isSmsServiceForRegion(PhoneNumber $number, string $regionDialingFrom): bool
|
||||
{
|
||||
@@ -330,7 +304,7 @@ class ShortNumberInfo
|
||||
*/
|
||||
protected function getRegionCodeForShortNumberFromRegionList(PhoneNumber $number, array $regionCodes): ?string
|
||||
{
|
||||
if ($regionCodes === []) {
|
||||
if (count($regionCodes) === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -355,11 +329,11 @@ class ShortNumberInfo
|
||||
/**
|
||||
* Check whether a short number is a possible number. If a country calling code is shared by
|
||||
* multiple regions, this returns true if it's possible in any of them. This provides a more
|
||||
* lenient check than {@link #isValidShortNumber}. See {@link
|
||||
* #IsPossibleShortNumberForRegion(PhoneNumber, String)} for details.
|
||||
* lenient check than {@see isValidShortNumber}. See {@see isPossibleShortNumberForRegion}
|
||||
* for details.
|
||||
*
|
||||
* @param $number PhoneNumber the short number to check
|
||||
* @return boolean whether the number is a possible short number
|
||||
* @return bool whether the number is a possible short number
|
||||
*/
|
||||
public function isPossibleShortNumber(PhoneNumber $number): bool
|
||||
{
|
||||
@@ -373,7 +347,7 @@ class ShortNumberInfo
|
||||
continue;
|
||||
}
|
||||
|
||||
if (in_array($shortNumberLength, $phoneMetadata->getGeneralDesc()->getPossibleLength())) {
|
||||
if (in_array($shortNumberLength, $phoneMetadata->getGeneralDesc()->getPossibleLength(), true)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -384,11 +358,11 @@ class ShortNumberInfo
|
||||
/**
|
||||
* Check whether a short number is a possible number when dialled from a region, given the number
|
||||
* in the form of a string, and the region where the number is dialled from. This provides a more
|
||||
* lenient check than {@link #isValidShortNumber}.
|
||||
* lenient check than {@see isValidShortNumber}.
|
||||
*
|
||||
* @param PhoneNumber $shortNumber The short number to check
|
||||
* @param string $regionDialingFrom Region dialing From
|
||||
* @return boolean whether the number is a possible short number
|
||||
* @return bool whether the number is a possible short number
|
||||
*/
|
||||
public function isPossibleShortNumberForRegion(PhoneNumber $shortNumber, string $regionDialingFrom): bool
|
||||
{
|
||||
@@ -403,28 +377,23 @@ class ShortNumberInfo
|
||||
}
|
||||
|
||||
$numberLength = strlen($this->getNationalSignificantNumber($shortNumber));
|
||||
return in_array($numberLength, $phoneMetadata->getGeneralDesc()->getPossibleLength());
|
||||
return in_array($numberLength, $phoneMetadata->getGeneralDesc()->getPossibleLength(), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests whether a short number matches a valid pattern. If a country calling code is shared by
|
||||
* multiple regions, this returns true if it's valid in any of them. Note that this doesn't verify
|
||||
* the number is actually in use, which is impossible to tell by just looking at the number
|
||||
* itself. See {@link #isValidShortNumberForRegion(PhoneNumber, String)} for details.
|
||||
* itself. See {@see isValidShortNumberForRegion(PhoneNumber, String)} for details.
|
||||
*
|
||||
* @param $number PhoneNumber the short number for which we want to test the validity
|
||||
* @return boolean whether the short number matches a valid pattern
|
||||
* @return bool whether the short number matches a valid pattern
|
||||
*/
|
||||
public function isValidShortNumber(PhoneNumber $number): bool
|
||||
{
|
||||
$regionCodes = $this->getRegionCodesForCountryCode($number->getCountryCode());
|
||||
$regionCode = $this->getRegionCodeForShortNumberFromRegionList($number, $regionCodes);
|
||||
|
||||
if ($regionCode === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (count($regionCodes) > 1) {
|
||||
if ($regionCode !== null && count($regionCodes) > 1) {
|
||||
// If a matching region had been found for the phone number from among two or more regions,
|
||||
// then we have already implicitly verified its validity for that region.
|
||||
return true;
|
||||
@@ -439,10 +408,10 @@ class ShortNumberInfo
|
||||
* itself.
|
||||
*
|
||||
* @param PhoneNumber $number The Short number for which we want to test the validity
|
||||
* @param string $regionDialingFrom the region from which the number is dialed
|
||||
* @return boolean whether the short number matches a valid pattern
|
||||
* @param string|null $regionDialingFrom the region from which the number is dialed
|
||||
* @return bool whether the short number matches a valid pattern
|
||||
*/
|
||||
public function isValidShortNumberForRegion(PhoneNumber $number, string $regionDialingFrom): bool
|
||||
public function isValidShortNumberForRegion(PhoneNumber $number, ?string $regionDialingFrom): bool
|
||||
{
|
||||
if (!$this->regionDialingFromMatchesNumber($number, $regionDialingFrom)) {
|
||||
return false;
|
||||
@@ -482,14 +451,13 @@ class ShortNumberInfo
|
||||
* }}</pre>
|
||||
*
|
||||
* @param PhoneNumber $number the short number for which we want to know the expected cost category,
|
||||
* as a string
|
||||
* as a string
|
||||
* @param string $regionDialingFrom the region from which the number is dialed
|
||||
* @return int the expected cost category for that region of the short number. Returns UNKNOWN_COST if
|
||||
* the number does not match a cost category. Note that an invalid number may match any cost
|
||||
* category.
|
||||
* @see ShortNumberCost
|
||||
* @return ShortNumberCost the expected cost category for that region of the short number. Returns ShortNumberCost::UNKNOWN_COST if
|
||||
* the number does not match a cost category. Note that an invalid number may match any cost
|
||||
* category.
|
||||
*/
|
||||
public function getExpectedCostForRegion(PhoneNumber $number, string $regionDialingFrom): int
|
||||
public function getExpectedCostForRegion(PhoneNumber $number, string $regionDialingFrom): ShortNumberCost
|
||||
{
|
||||
if (!$this->regionDialingFromMatchesNumber($number, $regionDialingFrom)) {
|
||||
return ShortNumberCost::UNKNOWN_COST;
|
||||
@@ -505,7 +473,7 @@ class ShortNumberInfo
|
||||
// The possible lengths are not present for a particular sub-type if they match the general
|
||||
// description; for this reason, we check the possible lengths against the general description
|
||||
// first to allow an early exit if possible.
|
||||
if (!in_array(strlen($shortNumber), $phoneMetadata->getGeneralDesc()->getPossibleLength())) {
|
||||
if (!in_array(strlen($shortNumber), $phoneMetadata->getGeneralDesc()->getPossibleLength(), true)) {
|
||||
return ShortNumberCost::UNKNOWN_COST;
|
||||
}
|
||||
|
||||
@@ -534,7 +502,7 @@ class ShortNumberInfo
|
||||
/**
|
||||
* Gets the expected cost category of a short number (however, nothing is implied about its
|
||||
* validity). If the country calling code is unique to a region, this method behaves exactly the
|
||||
* same as {@link #getExpectedCostForRegion(PhoneNumber, String)}. However, if the country calling
|
||||
* same as {@see getExpectedCostForRegion(PhoneNumber, String)}. However, if the country calling
|
||||
* code is shared by multiple regions, then it returns the highest cost in the sequence
|
||||
* PREMIUM_RATE, UNKNOWN_COST, STANDARD_RATE, TOLL_FREE. The reason for the position of
|
||||
* UNKNOWN_COST in this order is that if a number is UNKNOWN_COST in one region but STANDARD_RATE
|
||||
@@ -548,16 +516,16 @@ class ShortNumberInfo
|
||||
* </p>
|
||||
*
|
||||
* Note: If the region from which the number is dialed is known, it is highly preferable to call
|
||||
* {@link #getExpectedCostForRegion(PhoneNumber, String)} instead.
|
||||
* {@see getExpectedCostForRegion(PhoneNumber, String)} instead.
|
||||
*
|
||||
* @param PhoneNumber $number the short number for which we want to know the expected cost category
|
||||
* @return int the highest expected cost category of the short number in the region(s) with the given
|
||||
* country calling code
|
||||
* @see ShortNumberCost
|
||||
* @return ShortNumberCost the highest expected cost category of the short number in the region(s) with the given
|
||||
* country calling code
|
||||
*/
|
||||
public function getExpectedCost(PhoneNumber $number): int
|
||||
public function getExpectedCost(PhoneNumber $number): ShortNumberCost
|
||||
{
|
||||
$regionCodes = $this->getRegionCodesForCountryCode($number->getCountryCode());
|
||||
|
||||
if ($regionCodes === []) {
|
||||
return ShortNumberCost::UNKNOWN_COST;
|
||||
}
|
||||
@@ -598,7 +566,7 @@ class ShortNumberInfo
|
||||
*
|
||||
* @param string $number the phone number to test
|
||||
* @param string $regionCode the region where the phone number is being dialled
|
||||
* @return boolean whether the number exactly matches an emergency services number in the given region
|
||||
* @return bool whether the number exactly matches an emergency services number in the given region
|
||||
*/
|
||||
public function isEmergencyNumber(string $number, string $regionCode): bool
|
||||
{
|
||||
@@ -636,7 +604,7 @@ class ShortNumberInfo
|
||||
*/
|
||||
protected function matchesPossibleNumberAndNationalNumber(string $number, PhoneNumberDesc $numberDesc): bool
|
||||
{
|
||||
if (count($numberDesc->getPossibleLength()) > 0 && !in_array(strlen($number), $numberDesc->getPossibleLength())) {
|
||||
if (count($numberDesc->getPossibleLength()) > 0 && !in_array(strlen($number), $numberDesc->getPossibleLength(), true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,12 +7,19 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class ShortNumbersRegionCodeSet
|
||||
{
|
||||
// A set of all region codes for which data is available.
|
||||
|
||||
/**
|
||||
* A set of all region codes for which data is available.
|
||||
* @var string[]
|
||||
*/
|
||||
public const SHORT_NUMBERS_REGION_CODE_SET = [
|
||||
'AC',
|
||||
'AD',
|
||||
@@ -256,5 +263,4 @@ class ShortNumbersRegionCodeSet
|
||||
'ZM',
|
||||
'ZW',
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
@@ -1,38 +1,40 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber;
|
||||
|
||||
/**
|
||||
* Possible outcomes when testing if a PhoneNumber is possible.
|
||||
*/
|
||||
class ValidationResult
|
||||
enum ValidationResult: int
|
||||
{
|
||||
/**
|
||||
* The number length matches that of valid numbers for this region
|
||||
*/
|
||||
public const IS_POSSIBLE = 0;
|
||||
case IS_POSSIBLE = 0;
|
||||
|
||||
/**
|
||||
* The number has an invalid country calling code.
|
||||
*/
|
||||
public const INVALID_COUNTRY_CODE = 1;
|
||||
case INVALID_COUNTRY_CODE = 1;
|
||||
|
||||
/**
|
||||
* The number is shorter than all valid numbers for this region.
|
||||
*/
|
||||
public const TOO_SHORT = 2;
|
||||
case TOO_SHORT = 2;
|
||||
|
||||
/**
|
||||
* The number is longer than all valid numbers for this region.
|
||||
*/
|
||||
public const TOO_LONG = 3;
|
||||
case TOO_LONG = 3;
|
||||
|
||||
/**
|
||||
* The number length matches that of local numbers for this region only (i.e. numbers that may
|
||||
* be able to be dialled within an area, but do not have all the information to be dialled from
|
||||
* anywhere inside or outside the country).
|
||||
*/
|
||||
public const IS_POSSIBLE_LOCAL_ONLY = 4;
|
||||
case IS_POSSIBLE_LOCAL_ONLY = 4;
|
||||
|
||||
/**
|
||||
* The number is longer than the shortest valid numbers for this region, shorter than the
|
||||
@@ -41,5 +43,5 @@ class ValidationResult
|
||||
* isPossibleNumberForTypeWithReason was called, and there are no numbers of this type at all
|
||||
* for this region.
|
||||
*/
|
||||
public const INVALID_LENGTH = 5;
|
||||
case INVALID_LENGTH = 5;
|
||||
}
|
||||
|
||||
+46
-77
@@ -7,80 +7,49 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => '001',
|
||||
'countryCode' => 800,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:00|[1-9]\\d)\\d{6}',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '(?:00|[1-9]\\d)\\d{6}',
|
||||
'example' => '12345678',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '',
|
||||
'sameMobileAndFixedLinePattern' => true,
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'\\d',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_800 extends PhoneMetadata
|
||||
{
|
||||
protected const ID = '001';
|
||||
protected const COUNTRY_CODE = 800;
|
||||
|
||||
protected ?string $internationalPrefix = '';
|
||||
protected bool $sameMobileAndFixedLinePattern = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:00|[1-9]\d)\d{6}')
|
||||
->setPossibleLength([8]);
|
||||
$this->mobile = PhoneNumberDesc::empty();
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = PhoneNumberDesc::empty();
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['\d'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:00|[1-9]\d)\d{6}')
|
||||
->setExampleNumber('12345678');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+46
-77
@@ -7,80 +7,49 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => '001',
|
||||
'countryCode' => 808,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[1-9]\\d{7}',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '[1-9]\\d{7}',
|
||||
'example' => '12345678',
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '',
|
||||
'sameMobileAndFixedLinePattern' => true,
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[1-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_808 extends PhoneMetadata
|
||||
{
|
||||
protected const ID = '001';
|
||||
protected const COUNTRY_CODE = 808;
|
||||
|
||||
protected ?string $internationalPrefix = '';
|
||||
protected bool $sameMobileAndFixedLinePattern = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[1-9]\d{7}')
|
||||
->setPossibleLength([8]);
|
||||
$this->mobile = PhoneNumberDesc::empty();
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = PhoneNumberDesc::empty();
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[1-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[1-9]\d{7}')
|
||||
->setExampleNumber('12345678');
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+48
-79
@@ -7,82 +7,51 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => '001',
|
||||
'countryCode' => 870,
|
||||
'generalDesc' => [
|
||||
'pattern' => '7\\d{11}|[235-7]\\d{8}',
|
||||
'posLength' => [
|
||||
9,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}',
|
||||
'example' => '301234567',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '2\\d{8}',
|
||||
'example' => '201234567',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[235-7]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_870 extends PhoneMetadata
|
||||
{
|
||||
protected const ID = '001';
|
||||
protected const COUNTRY_CODE = 870;
|
||||
|
||||
protected ?string $internationalPrefix = '';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('7\d{11}|[235-7]\d{8}')
|
||||
->setPossibleLength([9, 12]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[356]|774[45])\d{8}|7[6-8]\d{7}')
|
||||
->setExampleNumber('301234567');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = PhoneNumberDesc::empty();
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[235-7]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2\d{8}')
|
||||
->setExampleNumber('201234567')
|
||||
->setPossibleLength([9]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+46
-77
@@ -7,80 +7,49 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => '001',
|
||||
'countryCode' => 878,
|
||||
'generalDesc' => [
|
||||
'pattern' => '10\\d{10}',
|
||||
'posLength' => [
|
||||
12,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '10\\d{10}',
|
||||
'example' => '101234567890',
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '',
|
||||
'sameMobileAndFixedLinePattern' => true,
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{5})(\\d{5})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_878 extends PhoneMetadata
|
||||
{
|
||||
protected const ID = '001';
|
||||
protected const COUNTRY_CODE = 878;
|
||||
|
||||
protected ?string $internationalPrefix = '';
|
||||
protected bool $sameMobileAndFixedLinePattern = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('10\d{10}')
|
||||
->setPossibleLength([12]);
|
||||
$this->mobile = PhoneNumberDesc::empty();
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = PhoneNumberDesc::empty();
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{5})(\d{5})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('10\d{10}')
|
||||
->setExampleNumber('101234567890');
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+50
-86
@@ -7,89 +7,53 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => '001',
|
||||
'countryCode' => 881,
|
||||
'generalDesc' => [
|
||||
'pattern' => '6\\d{9}|[0-36-9]\\d{8}',
|
||||
'posLength' => [
|
||||
9,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '6\\d{9}|[0-36-9]\\d{8}',
|
||||
'example' => '612345678',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{5})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[0-37-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{5,6})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'6',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_881 extends PhoneMetadata
|
||||
{
|
||||
protected const ID = '001';
|
||||
protected const COUNTRY_CODE = 881;
|
||||
|
||||
protected ?string $internationalPrefix = '';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('6\d{9}|[0-36-9]\d{8}')
|
||||
->setPossibleLength([9, 10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('6\d{9}|[0-36-9]\d{8}')
|
||||
->setExampleNumber('612345678');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = PhoneNumberDesc::empty();
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{5})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[0-37-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{5,6})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['6'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+86
-152
@@ -7,155 +7,89 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => '001',
|
||||
'countryCode' => 882,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}',
|
||||
'example' => '3421234',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}',
|
||||
'example' => '390123456789',
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'pattern' => '348[57]\\d{7}',
|
||||
'example' => '34851234567',
|
||||
'posLength' => [
|
||||
11,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{5})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'16|342',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{6})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'49',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1[36]|9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'3[23]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3,4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'16',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'10|23|3(?:[15]|4[57])|4|51',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'34',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4,5})(\\d{5})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[1-35]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_882 extends PhoneMetadata
|
||||
{
|
||||
protected const ID = '001';
|
||||
protected const COUNTRY_CODE = 882;
|
||||
|
||||
protected ?string $internationalPrefix = '';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[13]\d{6}(?:\d{2,5})?|[19]\d{7}|(?:[25]\d\d|4)\d{7}(?:\d{2})?')
|
||||
->setPossibleLength([7, 8, 9, 10, 11, 12]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('342\d{4}|(?:337|49)\d{6}|(?:3(?:2|47|7\d{3})|50\d{3})\d{7}')
|
||||
->setExampleNumber('3421234')
|
||||
->setPossibleLength([7, 8, 9, 10, 12]);
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = PhoneNumberDesc::empty();
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{5})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['16|342'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{6})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['49'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1[36]|9'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['3[23]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3,4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['16'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['10|23|3(?:[15]|4[57])|4|51'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['34'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4,5})(\d{5})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[1-35]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\d{4}|6\d{5,10})|(?:345\d|9[89])\d{6}|(?:10|2(?:3|85\d)|3(?:[15]|[69]\d\d)|4[15-8]|51)\d{8}')
|
||||
->setExampleNumber('390123456789');
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('348[57]\d{7}')
|
||||
->setExampleNumber('34851234567')
|
||||
->setPossibleLength([11]);
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+66
-117
@@ -7,120 +7,69 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => '001',
|
||||
'countryCode' => 883,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[1-4]\\d|51)\\d{6,10}',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}',
|
||||
'example' => '510012345',
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '',
|
||||
'sameMobileAndFixedLinePattern' => true,
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{2,8})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[14]|2[24-689]|3[02-689]|51[24-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'510',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'21',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'51[13]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[235]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_883 extends PhoneMetadata
|
||||
{
|
||||
protected const ID = '001';
|
||||
protected const COUNTRY_CODE = 883;
|
||||
|
||||
protected ?string $internationalPrefix = '';
|
||||
protected bool $sameMobileAndFixedLinePattern = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[1-4]\d|51)\d{6,10}')
|
||||
->setPossibleLength([8, 9, 10, 11, 12]);
|
||||
$this->mobile = PhoneNumberDesc::empty();
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = PhoneNumberDesc::empty();
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{2,8})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[14]|2[24-689]|3[02-689]|51[24-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['510'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['21'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['51[13]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[235]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2(?:00\d\d|10)|(?:370[1-9]|51\d0)\d)\d{7}|51(?:00\d{5}|[24-9]0\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\d{5,9}')
|
||||
->setExampleNumber('510012345');
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+46
-75
@@ -7,78 +7,49 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => '001',
|
||||
'countryCode' => 888,
|
||||
'generalDesc' => [
|
||||
'pattern' => '\\d{11}',
|
||||
'posLength' => [
|
||||
11,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '\\d{11}',
|
||||
'example' => '12345678901',
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '',
|
||||
'sameMobileAndFixedLinePattern' => true,
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{5})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_888 extends PhoneMetadata
|
||||
{
|
||||
protected const ID = '001';
|
||||
protected const COUNTRY_CODE = 888;
|
||||
|
||||
protected ?string $internationalPrefix = '';
|
||||
protected bool $sameMobileAndFixedLinePattern = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('\d{11}')
|
||||
->setPossibleLength([11]);
|
||||
$this->mobile = PhoneNumberDesc::empty();
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = PhoneNumberDesc::empty();
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{5})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern([])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('\d{11}')
|
||||
->setExampleNumber('12345678901');
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+48
-83
@@ -7,86 +7,51 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => '001',
|
||||
'countryCode' => 979,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[1359]\\d{8}',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '[1359]\\d{8}',
|
||||
'example' => '123456789',
|
||||
'posLengthLocal' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '',
|
||||
'sameMobileAndFixedLinePattern' => true,
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[1359]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_979 extends PhoneMetadata
|
||||
{
|
||||
protected const ID = '001';
|
||||
protected const COUNTRY_CODE = 979;
|
||||
|
||||
protected ?string $internationalPrefix = '';
|
||||
protected bool $sameMobileAndFixedLinePattern = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[1359]\d{8}')
|
||||
->setPossibleLengthLocalOnly([8])
|
||||
->setPossibleLength([9]);
|
||||
$this->mobile = PhoneNumberDesc::empty();
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[1359]\d{8}')
|
||||
->setExampleNumber('123456789')
|
||||
->setPossibleLengthLocalOnly([8]);
|
||||
$this->fixedLine = PhoneNumberDesc::empty();
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[1359]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+44
-74
@@ -7,77 +7,47 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AC',
|
||||
'countryCode' => 247,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[01589]\\d|[46])\\d{4}',
|
||||
'posLength' => [
|
||||
5,
|
||||
6,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '6[2-467]\\d{3}',
|
||||
'example' => '62889',
|
||||
'posLength' => [
|
||||
5,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '4\\d{4}',
|
||||
'example' => '40123',
|
||||
'posLength' => [
|
||||
5,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '(?:0[1-9]|[1589]\\d)\\d{4}',
|
||||
'example' => '542011',
|
||||
'posLength' => [
|
||||
6,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AC extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AC';
|
||||
protected const COUNTRY_CODE = 247;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[01589]\d|[46])\d{4}')
|
||||
->setPossibleLength([5, 6]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('4\d{4}')
|
||||
->setExampleNumber('40123')
|
||||
->setPossibleLength([5]);
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('6[2-467]\d{3}')
|
||||
->setExampleNumber('62889')
|
||||
->setPossibleLength([5]);
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:0[1-9]|[1589]\d)\d{4}')
|
||||
->setExampleNumber('542011')
|
||||
->setPossibleLength([6]);
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+67
-107
@@ -7,110 +7,70 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AD',
|
||||
'countryCode' => 376,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:1|6\\d)\\d{7}|[135-9]\\d{5}',
|
||||
'posLength' => [
|
||||
6,
|
||||
8,
|
||||
9,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '[78]\\d{5}',
|
||||
'example' => '712345',
|
||||
'posLength' => [
|
||||
6,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '690\\d{6}|[356]\\d{5}',
|
||||
'example' => '312345',
|
||||
'posLength' => [
|
||||
6,
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '180[02]\\d{4}',
|
||||
'example' => '18001234',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '[19]\\d{5}',
|
||||
'example' => '912345',
|
||||
'posLength' => [
|
||||
6,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'pattern' => '1800\\d{4}',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[135-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'6',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AD extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AD';
|
||||
protected const COUNTRY_CODE = 376;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:1|6\d)\d{7}|[135-9]\d{5}')
|
||||
->setPossibleLength([6, 8, 9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('690\d{6}|[356]\d{5}')
|
||||
->setExampleNumber('312345')
|
||||
->setPossibleLength([6, 9]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[19]\d{5}')
|
||||
->setExampleNumber('912345')
|
||||
->setPossibleLength([6]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[78]\d{5}')
|
||||
->setExampleNumber('712345')
|
||||
->setPossibleLength([6]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[135-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['1'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['6'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('180[02]\d{4}')
|
||||
->setExampleNumber('18001234')
|
||||
->setPossibleLength([8]);
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1800\d{4}')
|
||||
->setPossibleLength([8]);
|
||||
}
|
||||
}
|
||||
|
||||
+80
-125
@@ -7,128 +7,83 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AE',
|
||||
'countryCode' => 971,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}',
|
||||
'posLength' => [
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '[2-4679][2-8]\\d{6}',
|
||||
'example' => '22345678',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '5[024-68]\\d{7}',
|
||||
'example' => '501234567',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '400\\d{6}|800\\d{2,9}',
|
||||
'example' => '800123456',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900[02]\\d{5}',
|
||||
'example' => '900234567',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '700[05]\\d{5}',
|
||||
'example' => '700012345',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '600[25]\\d{5}',
|
||||
'example' => '600212345',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2,9})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'60|8',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[236]|[479][2-8]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d)(\\d{5})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[479]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'5',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AE extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AE';
|
||||
protected const COUNTRY_CODE = 971;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[4-7]\d|9[0-689])\d{7}|800\d{2,9}|[2-4679]\d{7}')
|
||||
->setPossibleLength([5, 6, 7, 8, 9, 10, 11, 12]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('5[024-68]\d{7}')
|
||||
->setExampleNumber('501234567')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900[02]\d{5}')
|
||||
->setExampleNumber('900234567')
|
||||
->setPossibleLength([9]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[2-4679][2-8]\d{6}')
|
||||
->setExampleNumber('22345678')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([8]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2,9})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['60|8'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[236]|[479][2-8]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d)(\d{5})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[479]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['5'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('400\d{6}|800\d{2,9}')
|
||||
->setExampleNumber('800123456');
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('700[05]\d{5}')
|
||||
->setExampleNumber('700012345')
|
||||
->setPossibleLength([9]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('600[25]\d{5}')
|
||||
->setExampleNumber('600212345')
|
||||
->setPossibleLength([9]);
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+66
-106
@@ -7,109 +7,69 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AF',
|
||||
'countryCode' => 93,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[2-7]\\d{8}',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}',
|
||||
'example' => '234567890',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '7\\d{8}',
|
||||
'example' => '701234567',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[1-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-7]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-7]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AF extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AF';
|
||||
protected const COUNTRY_CODE = 93;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[2-7]\d{8}')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('7\d{8}')
|
||||
->setExampleNumber('701234567')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\d{6}')
|
||||
->setExampleNumber('234567890')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[1-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[2-7]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[2-7]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+59
-80
@@ -7,83 +7,62 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AG',
|
||||
'countryCode' => 1,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:268|[58]\\d\\d|900)\\d{7}',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}',
|
||||
'example' => '2684601234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}',
|
||||
'example' => '2684641234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '8(?:00|33|44|55|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '8002123456',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900[2-9]\\d{6}',
|
||||
'example' => '9002123456',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '5002345678',
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '26848[01]\\d{4}',
|
||||
'example' => '2684801234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'pattern' => '26840[69]\\d{4}',
|
||||
'example' => '2684061234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '011',
|
||||
'nationalPrefix' => '1',
|
||||
'nationalPrefixForParsing' => '([457]\\d{6})$|1',
|
||||
'nationalPrefixTransformRule' => '268$1',
|
||||
'numberFormat' => [],
|
||||
'leadingDigits' => '268',
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AG extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AG';
|
||||
protected const COUNTRY_CODE = 1;
|
||||
protected const LEADING_DIGITS = '268';
|
||||
protected const NATIONAL_PREFIX = '1';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '([457]\d{6})$|1';
|
||||
protected ?string $internationalPrefix = '011';
|
||||
protected ?string $nationalPrefixTransformRule = '268$1';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:268|[58]\d\d|900)\d{7}')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('268(?:464|7(?:1[3-9]|[28]\d|3[0246]|64|7[0-689]))\d{4}')
|
||||
->setExampleNumber('2684641234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900[2-9]\d{6}')
|
||||
->setExampleNumber('9002123456');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('268(?:4(?:6[0-38]|84)|56[0-2])\d{4}')
|
||||
->setExampleNumber('2684601234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8(?:00|33|44|55|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('8002123456');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('52(?:3(?:[2-46-9][02-9]\d|5(?:[02-46-9]\d|5[0-46-9]))|4(?:[2-478][02-9]\d|5(?:[034]\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\d)|9(?:[05-9]\d|2[0-5]|49)))\d{4}|52[34][2-9]1[02-9]\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('5002345678');
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('26848[01]\d{4}')
|
||||
->setExampleNumber('2684801234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->pager = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('26840[69]\d{4}')
|
||||
->setExampleNumber('2684061234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+56
-78
@@ -7,81 +7,59 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AI',
|
||||
'countryCode' => 1,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:264|[58]\\d\\d|900)\\d{7}',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '264(?:292|4(?:6[12]|9[78]))\\d{4}',
|
||||
'example' => '2644612345',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}',
|
||||
'example' => '2642351234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '8(?:00|33|44|55|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '8002123456',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900[2-9]\\d{6}',
|
||||
'example' => '9002123456',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '5002345678',
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'pattern' => '264724\\d{4}',
|
||||
'example' => '2647241234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '011',
|
||||
'nationalPrefix' => '1',
|
||||
'nationalPrefixForParsing' => '([2457]\\d{6})$|1',
|
||||
'nationalPrefixTransformRule' => '264$1',
|
||||
'numberFormat' => [],
|
||||
'leadingDigits' => '264',
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AI extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AI';
|
||||
protected const COUNTRY_CODE = 1;
|
||||
protected const LEADING_DIGITS = '264';
|
||||
protected const NATIONAL_PREFIX = '1';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '([2457]\d{6})$|1';
|
||||
protected ?string $internationalPrefix = '011';
|
||||
protected ?string $nationalPrefixTransformRule = '264$1';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:264|[58]\d\d|900)\d{7}')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\d{4}')
|
||||
->setExampleNumber('2642351234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900[2-9]\d{6}')
|
||||
->setExampleNumber('9002123456');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('264(?:292|4(?:6[12]|9[78]))\d{4}')
|
||||
->setExampleNumber('2644612345')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8(?:00|33|44|55|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('8002123456');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('52(?:3(?:[2-46-9][02-9]\d|5(?:[02-46-9]\d|5[0-46-9]))|4(?:[2-478][02-9]\d|5(?:[034]\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\d)|9(?:[05-9]\d|2[0-5]|49)))\d{4}|52[34][2-9]1[02-9]\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('5002345678');
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('264724\d{4}')
|
||||
->setExampleNumber('2647241234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+91
-139
@@ -7,142 +7,94 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AL',
|
||||
'countryCode' => 355,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}',
|
||||
'posLength' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
5,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '4505[0-2]\\d{3}|(?:[2358][16-9]\\d[2-9]|4410)\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\d))\\d{5}',
|
||||
'example' => '22345678',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '6(?:[78][2-9]|9\\d)\\d{6}',
|
||||
'example' => '672123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{4}',
|
||||
'example' => '8001234',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900[1-9]\\d\\d',
|
||||
'example' => '900123',
|
||||
'posLength' => [
|
||||
6,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '808[1-9]\\d\\d',
|
||||
'example' => '808123',
|
||||
'posLength' => [
|
||||
6,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '700[2-9]\\d{4}',
|
||||
'example' => '70021234',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3,4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'80|9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'4[2-6]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2358][2-5]|4',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{5})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[23578]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'6',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AL extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AL';
|
||||
protected const COUNTRY_CODE = 355;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:700\d\d|900)\d{3}|8\d{5,7}|(?:[2-5]|6\d)\d{7}')
|
||||
->setPossibleLengthLocalOnly([5])
|
||||
->setPossibleLength([6, 7, 8, 9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('6(?:[78][2-9]|9\d)\d{6}')
|
||||
->setExampleNumber('672123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900[1-9]\d\d')
|
||||
->setExampleNumber('900123')
|
||||
->setPossibleLength([6]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('4505[0-2]\d{3}|(?:[2358][16-9]\d[2-9]|4410)\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\d))\d{5}')
|
||||
->setExampleNumber('22345678')
|
||||
->setPossibleLengthLocalOnly([5, 6, 7])
|
||||
->setPossibleLength([8]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3,4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['80|9'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['4[2-6]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[2358][2-5]|4'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{5})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[23578]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['6'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{4}')
|
||||
->setExampleNumber('8001234')
|
||||
->setPossibleLength([7]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('808[1-9]\d\d')
|
||||
->setExampleNumber('808123')
|
||||
->setPossibleLength([6]);
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('700[2-9]\d{4}')
|
||||
->setExampleNumber('70021234')
|
||||
->setPossibleLength([8]);
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+79
-109
@@ -7,112 +7,82 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AM',
|
||||
'countryCode' => 374,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[1-489]\\d|55|60|77)\\d{6}',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
5,
|
||||
6,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:(?:1[0-25]|47)\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}',
|
||||
'example' => '10123456',
|
||||
'posLengthLocal' => [
|
||||
5,
|
||||
6,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:33|4[1349]|55|77|88|9[13-9])\\d{6}',
|
||||
'example' => '77123456',
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{5}',
|
||||
'example' => '80012345',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '90[016]\\d{5}',
|
||||
'example' => '90012345',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '80[1-4]\\d{5}',
|
||||
'example' => '80112345',
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\d|9[0-2])\\d{4}',
|
||||
'example' => '60271234',
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[89]0',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0 $1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{5})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2|3[12]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '(0$1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{6})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1|47',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '(0$1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{6})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[3-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AM extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AM';
|
||||
protected const COUNTRY_CODE = 374;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[1-489]\d|55|60|77)\d{6}')
|
||||
->setPossibleLengthLocalOnly([5, 6])
|
||||
->setPossibleLength([8]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:33|4[1349]|55|77|88|9[13-9])\d{6}')
|
||||
->setExampleNumber('77123456');
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('90[016]\d{5}')
|
||||
->setExampleNumber('90012345');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:(?:1[0-25]|47)\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\d{5}')
|
||||
->setExampleNumber('10123456')
|
||||
->setPossibleLengthLocalOnly([5, 6]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[89]0'])
|
||||
->setNationalPrefixFormattingRule('0 $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{5})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['2|3[12]'])
|
||||
->setNationalPrefixFormattingRule('(0$1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{6})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['1|47'])
|
||||
->setNationalPrefixFormattingRule('(0$1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{6})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[3-9]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{5}')
|
||||
->setExampleNumber('80012345');
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('80[1-4]\d{5}')
|
||||
->setExampleNumber('80112345');
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\d|9[0-2])\d{4}')
|
||||
->setExampleNumber('60271234');
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+47
-75
@@ -7,78 +7,50 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AO',
|
||||
'countryCode' => 244,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[29]\\d{8}',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '2\\d(?:[0134][25-9]|[25-9]\\d)\\d{5}',
|
||||
'example' => '222123456',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '9[1-79]\\d{7}',
|
||||
'example' => '923123456',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[29]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AO extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AO';
|
||||
protected const COUNTRY_CODE = 244;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[29]\d{8}')
|
||||
->setPossibleLength([9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('9[1-79]\d{7}')
|
||||
->setExampleNumber('923123456');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2\d(?:[0134][25-9]|[25-9]\d)\d{5}')
|
||||
->setExampleNumber('222123456');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[29]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+194
-289
@@ -7,292 +7,197 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AR',
|
||||
'countryCode' => 54,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}',
|
||||
'posLength' => [
|
||||
10,
|
||||
11,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:(?:11[1-8]|670)\\d|2(?:21[2-6]|(?:3[06]|49)4|6(?:04|1[2-8])|9[17][4-6])|3(?:(?:36|64)4|4(?:1[2-8]|[25][4-6]|84)|5(?:1[2-9]|[38][4-6])|8(?:[17][2-6]|3[4-6]|8[3-68])))\\d{6}|(?:2(?:23|64|99)|3(?:43|85))[3-6]\\d{6}|(?:2(?:657|9(?:54|66))|3(?:487|7(?:55|77)|865))[2-8]\\d{5}|(?:2(?:[28]0|37|6[36]|9[48])|3(?:62|7[069]|80))[45]\\d{6}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|(?:2(?:2(?:62|81)|320|622|9(?:42|83))|3(?:329|4(?:62|76|89)|564))[2-6]\\d{5}|(?:2(?:284|3(?:02|23)|477|920)|3(?:4(?:46|[89]2)|541|878))[2-7]\\d{5}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|35|5[17])))[3-6]\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}',
|
||||
'example' => '1123456789',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:675\\d|9(?:11[1-8]\\d|2(?:21[2-6]|(?:3[06]|49)4|6(?:04|1[2-8])|9[17][4-6])|3(?:(?:36|64)4|4(?:1[2-8]|[25][4-6]|84)|5(?:1[2-9]|[38][4-6])|8(?:[17][2-6]|3[4-6]|8[3-68]))))\\d{6}|9(?:2(?:23|64|99)|3(?:43|85))[3-6]\\d{6}|9(?:2(?:657|9(?:54|66))|3(?:487|7(?:55|77)|865))[2-8]\\d{5}|9(?:2(?:[28]0|37|6[36]|9[48])|3(?:62|7[069]|80))[45]\\d{6}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|9(?:2(?:2(?:62|81)|320|622|9(?:42|83))|3(?:329|4(?:62|76|89)|564))[2-6]\\d{5}|9(?:2(?:284|3(?:02|23)|477|920)|3(?:4(?:46|[89]2)|541|878))[2-7]\\d{5}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|9(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|35|5[17])))[3-6]\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}',
|
||||
'example' => '91123456789',
|
||||
'posLengthLocal' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{7,8}',
|
||||
'example' => '8001234567',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '60[04579]\\d{7}',
|
||||
'example' => '6001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '810\\d{7}',
|
||||
'example' => '8101234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'pattern' => '810\\d{7}',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?',
|
||||
'nationalPrefixTransformRule' => '9$1',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})',
|
||||
'format' => '$1',
|
||||
'leadingDigitsPatterns' => [
|
||||
'0|1(?:0[0-35-7]|1[02-5]|2[015]|3[47]|4[478])|911',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[1-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[1-8]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{2})(\\d{4})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])',
|
||||
'2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)',
|
||||
'2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]',
|
||||
'2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1-$2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[68]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[23]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{4})(\\d{2})(\\d{4})',
|
||||
'format' => '$2 15-$3-$4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9(?:2[2-469]|3[3-578])',
|
||||
'9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))',
|
||||
'9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)',
|
||||
'9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]',
|
||||
'9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{2})(\\d{4})(\\d{4})',
|
||||
'format' => '$2 15-$3-$4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'91',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{5})',
|
||||
'format' => '$1-$2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'8',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$2 15-$3-$4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{2})(\\d{4})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])',
|
||||
'2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)',
|
||||
'2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]',
|
||||
'2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1-$2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[68]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[23]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{4})(\\d{2})(\\d{4})',
|
||||
'format' => '$1 $2 $3-$4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9(?:2[2-469]|3[3-578])',
|
||||
'9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))',
|
||||
'9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)',
|
||||
'9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]',
|
||||
'9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]',
|
||||
],
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{2})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3-$4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'91',
|
||||
],
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{5})',
|
||||
'format' => '$1-$2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'8',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3-$4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9',
|
||||
],
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AR extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AR';
|
||||
protected const COUNTRY_CODE = 54;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected ?string $nationalPrefixTransformRule = '9$1';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:11|[89]\d\d)\d{8}|[2368]\d{9}')
|
||||
->setPossibleLengthLocalOnly([6, 7, 8])
|
||||
->setPossibleLength([10, 11]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\d{5}|9(?:2(?:657|9(?:54|66))|3(?:48[27]|7(?:55|77)|8(?:65|78)))[2-8]\d{5}|9(?:2(?:284|3(?:02|23)|477|622|920)|3(?:4(?:46|89|92)|541))[2-7]\d{5}|(?:675\d|9(?:11[1-8]\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[25][4-6]|3[3-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|1[2-7]|3[4-6]|5[3-6]|7[2-6]|8[3-68]))))\d{6}|9(?:2(?:2(?:62|81)|320|9(?:42|83))|3(?:329|4(?:62|7[16])|5(?:43|64)|7(?:18|5[17])))[2-6]\d{5}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\d{5}|9(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|64)|5(?:25|37|4[47]|71)|7(?:35|72)|825))[3-6]\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[035-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[3-5]|8[26])|8(?:2[67]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\d{5}')
|
||||
->setExampleNumber('91123456789')
|
||||
->setPossibleLengthLocalOnly([6, 7, 8]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('60[04579]\d{7}')
|
||||
->setExampleNumber('6001234567')
|
||||
->setPossibleLength([10]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\d{5}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\d{5}|(?:2(?:657|9(?:54|66))|3(?:48[27]|7(?:55|77)|8(?:65|78)))[2-8]\d{5}|(?:2(?:284|3(?:02|23)|477|622|920)|3(?:4(?:46|89|92)|541))[2-7]\d{5}|(?:(?:11[1-8]|670)\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[25][4-6]|3[3-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|1[2-7]|3[4-6]|5[3-6]|7[2-6]|8[3-68])))\d{6}|(?:2(?:2(?:62|81)|320|9(?:42|83))|3(?:329|4(?:62|7[16])|5(?:43|64)|7(?:18|5[17])))[2-6]\d{5}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\d{5}|(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|64)|5(?:25|37|4[47]|71)|7(?:35|72)|825))[3-6]\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[035-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[3-5]|8[26])|8(?:2[67]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\d{5}')
|
||||
->setExampleNumber('1123456789')
|
||||
->setPossibleLengthLocalOnly([6, 7, 8])
|
||||
->setPossibleLength([10]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})')
|
||||
->setFormat('$1')
|
||||
->setLeadingDigitsPattern(['0|1(?:0[0-35-7]|1[02-5]|2[015]|3[47]|4[478])|911'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['[1-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['[2-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['[1-8]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{2})(\d{4})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern([
|
||||
'2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])',
|
||||
'2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)',
|
||||
'2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]',
|
||||
'2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern(['1'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1-$2-$3')
|
||||
->setLeadingDigitsPattern(['[68]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern(['[23]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{4})(\d{2})(\d{4})')
|
||||
->setFormat('$2 15-$3-$4')
|
||||
->setLeadingDigitsPattern([
|
||||
'9(?:2[2-469]|3[3-578])',
|
||||
'9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))',
|
||||
'9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)',
|
||||
'9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]',
|
||||
'9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{2})(\d{4})(\d{4})')
|
||||
->setFormat('$2 15-$3-$4')
|
||||
->setLeadingDigitsPattern(['91'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{5})')
|
||||
->setFormat('$1-$2-$3')
|
||||
->setLeadingDigitsPattern(['8'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$2 15-$3-$4')
|
||||
->setLeadingDigitsPattern(['9'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{7,8}')
|
||||
->setExampleNumber('8001234567');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('810\d{7}')
|
||||
->setExampleNumber('8101234567')
|
||||
->setPossibleLength([10]);
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('810\d{7}')
|
||||
->setPossibleLength([10]);
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{2})(\d{4})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern([
|
||||
'2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])',
|
||||
'2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)',
|
||||
'2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]',
|
||||
'2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern(['1'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1-$2-$3')
|
||||
->setLeadingDigitsPattern(['[68]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern(['[23]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{4})(\d{2})(\d{4})')
|
||||
->setFormat('$1 $2 $3-$4')
|
||||
->setLeadingDigitsPattern([
|
||||
'9(?:2[2-469]|3[3-578])',
|
||||
'9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))',
|
||||
'9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)',
|
||||
'9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]',
|
||||
'9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]',
|
||||
]),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{2})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3-$4')
|
||||
->setLeadingDigitsPattern(['91']),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{5})')
|
||||
->setFormat('$1-$2-$3')
|
||||
->setLeadingDigitsPattern(['8'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3-$4')
|
||||
->setLeadingDigitsPattern(['9']),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+52
-75
@@ -7,78 +7,55 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AS',
|
||||
'countryCode' => 1,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[58]\\d\\d|684|900)\\d{7}',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '6846(?:22|33|44|55|77|88|9[19])\\d{4}',
|
||||
'example' => '6846221234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\d{4}',
|
||||
'example' => '6847331234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '8(?:00|33|44|55|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '8002123456',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900[2-9]\\d{6}',
|
||||
'example' => '9002123456',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '5002345678',
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '011',
|
||||
'nationalPrefix' => '1',
|
||||
'nationalPrefixForParsing' => '([267]\\d{6})$|1',
|
||||
'nationalPrefixTransformRule' => '684$1',
|
||||
'numberFormat' => [],
|
||||
'leadingDigits' => '684',
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AS extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AS';
|
||||
protected const COUNTRY_CODE = 1;
|
||||
protected const LEADING_DIGITS = '684';
|
||||
protected const NATIONAL_PREFIX = '1';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '([267]\d{6})$|1';
|
||||
protected ?string $internationalPrefix = '011';
|
||||
protected ?string $nationalPrefixTransformRule = '684$1';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[58]\d\d|684|900)\d{7}')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\d{4}')
|
||||
->setExampleNumber('6847331234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900[2-9]\d{6}')
|
||||
->setExampleNumber('9002123456');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('6846(?:22|33|44|55|77|88|9[19])\d{4}')
|
||||
->setExampleNumber('6846221234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8(?:00|33|44|55|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('8002123456');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('52(?:3(?:[2-46-9][02-9]\d|5(?:[02-46-9]\d|5[0-46-9]))|4(?:[2-478][02-9]\d|5(?:[034]\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\d)|9(?:[05-9]\d|2[0-5]|49)))\d{4}|52[34][2-9]1[02-9]\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('5002345678');
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+156
-268
@@ -7,271 +7,159 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AT',
|
||||
'countryCode' => 43,
|
||||
'generalDesc' => [
|
||||
'pattern' => '1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}',
|
||||
'posLength' => [
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
3,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '1(?:11\\d|[2-9]\\d{3,11})|(?:316|463|(?:51|66|73)2)\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-8]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{4,10}',
|
||||
'example' => '1234567890',
|
||||
'posLengthLocal' => [
|
||||
3,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '6(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}',
|
||||
'example' => '664123456',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{6,10}',
|
||||
'example' => '800123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '(?:8[69][2-68]|9(?:0[01]|3[019]))\\d{6,10}',
|
||||
'example' => '900123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '8(?:10|2[018])\\d{6,10}|828\\d{5}',
|
||||
'example' => '810123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '5(?:0[1-9]|17|[79]\\d)\\d{2,10}|7[28]0\\d{6,10}',
|
||||
'example' => '780123456',
|
||||
'posLength' => [
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{4})',
|
||||
'format' => '$1',
|
||||
'leadingDigitsPatterns' => [
|
||||
'14',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3,12})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1(?:11|[2-9])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'517',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3,5})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'5[079]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{6})',
|
||||
'format' => '$1',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[18]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3,10})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3,9})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-467]|5[2-6]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'5',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4})(\\d{4,7})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'5',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3,12})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1(?:11|[2-9])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'517',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3,5})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'5[079]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3,10})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3,9})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-467]|5[2-6]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'5',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4})(\\d{4,7})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'5',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AT extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AT';
|
||||
protected const COUNTRY_CODE = 43;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1\d{3,12}|2\d{6,12}|43(?:(?:0\d|5[02-9])\d{3,9}|2\d{4,5}|[3467]\d{4}|8\d{4,6}|9\d{4,7})|5\d{4,12}|8\d{7,12}|9\d{8,12}|(?:[367]\d|4[0-24-9])\d{4,11}')
|
||||
->setPossibleLengthLocalOnly([3])
|
||||
->setPossibleLength([4, 5, 6, 7, 8, 9, 10, 11, 12, 13]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('6(?:485|(?:5[0-3579]|6[013-9]|[7-9]\d)\d)\d{3,9}')
|
||||
->setExampleNumber('664123456')
|
||||
->setPossibleLength([7, 8, 9, 10, 11, 12, 13]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:8[69][2-68]|9(?:0[01]|3[019]))\d{6,10}')
|
||||
->setExampleNumber('900123456')
|
||||
->setPossibleLength([9, 10, 11, 12, 13]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1(?:11\d|[2-9]\d{3,11})|(?:316|463)\d{3,10}|648[34]\d{3,9}|(?:51|66|73)2\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-7]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\d{4,10}')
|
||||
->setExampleNumber('1234567890')
|
||||
->setPossibleLengthLocalOnly([3]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})')
|
||||
->setFormat('$1')
|
||||
->setLeadingDigitsPattern(['14'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3,12})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['1(?:11|[2-9])'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['517'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3,5})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['5[079]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{6})')
|
||||
->setFormat('$1')
|
||||
->setLeadingDigitsPattern(['[18]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3,10})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]', '(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3,9})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[2-467]|5[2-6]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['5'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4})(\d{4,7})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['5'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{6,10}')
|
||||
->setExampleNumber('800123456')
|
||||
->setPossibleLength([9, 10, 11, 12, 13]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8(?:10|2[018])\d{6,10}|828\d{5}')
|
||||
->setExampleNumber('810123456')
|
||||
->setPossibleLength([8, 9, 10, 11, 12, 13]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('5(?:0[1-9]|17|[79]\d)\d{2,10}|7[28]0\d{6,10}')
|
||||
->setExampleNumber('780123456')
|
||||
->setPossibleLength([5, 6, 7, 8, 9, 10, 11, 12, 13]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3,12})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['1(?:11|[2-9])'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['517'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3,5})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['5[079]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3,10})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]', '(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3,9})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[2-467]|5[2-6]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['5'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4})(\d{4,7})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['5'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+154
-247
@@ -7,250 +7,157 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AU',
|
||||
'countryCode' => 61,
|
||||
'generalDesc' => [
|
||||
'pattern' => '1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}',
|
||||
'posLength' => [
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\d|2[0-8]))\\d|3(?:(?:[0-3589]\\d|6[1-9]|7[0-35-9])\\d|4(?:[0-578]\\d|90)))\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|3\\d\\d)|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}',
|
||||
'example' => '212345678',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}',
|
||||
'example' => '412345678',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '180(?:0\\d{3}|2)\\d{3}',
|
||||
'example' => '1800123456',
|
||||
'posLength' => [
|
||||
7,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '190[0-26]\\d{6}',
|
||||
'example' => '1900123456',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}',
|
||||
'example' => '1300123456',
|
||||
'posLength' => [
|
||||
6,
|
||||
8,
|
||||
10,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}',
|
||||
'example' => '147101234',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'pattern' => '163\\d{2,6}',
|
||||
'example' => '1631234',
|
||||
'posLength' => [
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'pattern' => '1(?:3(?:00\\d{5}|45[0-4])|802)\\d{3}|1[38]00\\d{6}|13\\d{4}',
|
||||
'posLength' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
10,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011',
|
||||
'preferredInternationalPrefix' => '0011',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '(183[12])|0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3,4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'16',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'13',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'19',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'180',
|
||||
'1802',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3,4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'19',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{2,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'16',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'14|4',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2378]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '(0$1)',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC ($1)',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1(?:30|[89])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'130',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3,4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'16',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{2,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'16',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'14|4',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2378]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '(0$1)',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC ($1)',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1(?:30|[89])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mainCountryForCode' => true,
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AU extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AU';
|
||||
protected const COUNTRY_CODE = 61;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '(183[12])|0';
|
||||
protected ?string $internationalPrefix = '001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011';
|
||||
protected ?string $preferredInternationalPrefix = '0011';
|
||||
protected bool $mainCountryForCode = true;
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1(?:[0-79]\d{7}(?:\d(?:\d{2})?)?|8[0-24-9]\d{7})|[2-478]\d{8}|1\d{4,7}')
|
||||
->setPossibleLength([5, 6, 7, 8, 9, 10, 12]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('4(?:79[01]|83[0-389]|94[0-478])\d{5}|4(?:[0-36]\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-37-9])\d{6}')
|
||||
->setExampleNumber('412345678')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('190[0-26]\d{6}')
|
||||
->setExampleNumber('1900123456')
|
||||
->setPossibleLength([10]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:(?:2(?:(?:[0-26-9]\d|3[0-8]|5[0135-9])\d|4(?:[02-9]\d|10))|3(?:(?:[0-3589]\d|6[1-9]|7[0-35-9])\d|4(?:[0-578]\d|90))|7(?:[013-57-9]\d|2[0-8])\d)\d\d|8(?:51(?:0(?:0[03-9]|[12479]\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\d|7[89]|9[0-4])|[34]\d\d)|(?:6[0-8]|[78]\d)\d{3}|9(?:[02-9]\d{3}|1(?:(?:[0-58]\d|6[0135-9])\d|7(?:0[0-24-9]|[1-9]\d)|9(?:[0-46-9]\d|5[0-79])))))\d{3}')
|
||||
->setExampleNumber('212345678')
|
||||
->setPossibleLengthLocalOnly([8])
|
||||
->setPossibleLength([9]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3,4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['16'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['13'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['19'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['180', '1802'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3,4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['19'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{2,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['16'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['14|4'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[2378]'])
|
||||
->setNationalPrefixFormattingRule('(0$1)')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC ($1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1(?:30|[89])'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['130'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('180(?:0\d{3}|2)\d{3}')
|
||||
->setExampleNumber('1800123456')
|
||||
->setPossibleLength([7, 10]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('13(?:00\d{6}(?:\d{2})?|45[0-4]\d{3})|13\d{4}')
|
||||
->setExampleNumber('1300123456')
|
||||
->setPossibleLength([6, 8, 10, 12]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('14(?:5(?:1[0458]|[23][458])|71\d)\d{4}')
|
||||
->setExampleNumber('147101234')
|
||||
->setPossibleLength([9]);
|
||||
$this->pager = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('163\d{2,6}')
|
||||
->setExampleNumber('1631234')
|
||||
->setPossibleLength([5, 6, 7, 8, 9]);
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1(?:3(?:00\d{5}|45[0-4])|802)\d{3}|1[38]00\d{6}|13\d{4}')
|
||||
->setPossibleLength([6, 7, 8, 10, 12]);
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3,4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['16'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{2,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['16'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['14|4'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[2378]'])
|
||||
->setNationalPrefixFormattingRule('(0$1)')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC ($1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1(?:30|[89])'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+53
-72
@@ -7,75 +7,56 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AW',
|
||||
'countryCode' => 297,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[25-79]\\d\\d|800)\\d{4}',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '5(?:2\\d|8[1-9])\\d{4}',
|
||||
'example' => '5212345',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:290|5[69]\\d|6(?:[03]0|22|4[0-2]|[69]\\d)|7(?:[34]\\d|7[07])|9(?:6[45]|9[4-8]))\\d{4}',
|
||||
'example' => '5601234',
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{4}',
|
||||
'example' => '8001234',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900\\d{4}',
|
||||
'example' => '9001234',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '(?:28\\d|501)\\d{4}',
|
||||
'example' => '5011234',
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[25-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AW extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AW';
|
||||
protected const COUNTRY_CODE = 297;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[25-79]\d\d|800)\d{4}')
|
||||
->setPossibleLength([7]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:290|5[69]\d|6(?:[03]0|22|4[0-2]|[69]\d)|7(?:[34]\d|7[07])|9(?:6[45]|9[4-8]))\d{4}')
|
||||
->setExampleNumber('5601234');
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900\d{4}')
|
||||
->setExampleNumber('9001234');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('5(?:2\d|8[1-9])\d{4}')
|
||||
->setExampleNumber('5212345');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[25-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{4}')
|
||||
->setExampleNumber('8001234');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:28\d|501)\d{4}')
|
||||
->setExampleNumber('5011234');
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+53
-95
@@ -7,98 +7,56 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AX',
|
||||
'countryCode' => 358,
|
||||
'generalDesc' => [
|
||||
'pattern' => '2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}',
|
||||
'posLength' => [
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '18[1-8]\\d{3,6}',
|
||||
'example' => '181234567',
|
||||
'posLength' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}',
|
||||
'example' => '412345678',
|
||||
'posLength' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{4,6}',
|
||||
'example' => '800123456',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '[67]00\\d{5,6}',
|
||||
'example' => '600123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}',
|
||||
'example' => '10112345',
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))',
|
||||
'preferredInternationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [],
|
||||
'leadingDigits' => '18',
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AX extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AX';
|
||||
protected const COUNTRY_CODE = 358;
|
||||
protected const LEADING_DIGITS = '18';
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))';
|
||||
protected ?string $preferredInternationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2\d{4,9}|35\d{4,5}|(?:60\d\d|800)\d{4,6}|7\d{5,11}|(?:[14]\d|3[0-46-9]|50)\d{4,8}')
|
||||
->setPossibleLength([5, 6, 7, 8, 9, 10, 11, 12]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('4946\d{2,6}|(?:4[0-8]|50)\d{4,8}')
|
||||
->setExampleNumber('412345678')
|
||||
->setPossibleLength([6, 7, 8, 9, 10]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[67]00\d{5,6}')
|
||||
->setExampleNumber('600123456')
|
||||
->setPossibleLength([8, 9]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('18[1-8]\d{3,6}')
|
||||
->setExampleNumber('181234567')
|
||||
->setPossibleLength([6, 7, 8, 9]);
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{4,6}')
|
||||
->setExampleNumber('800123456')
|
||||
->setPossibleLength([7, 8, 9]);
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('20\d{4,8}|60[12]\d{5,6}|7(?:099\d{4,5}|5[03-9]\d{3,7})|20[2-59]\d\d|(?:606|7(?:0[78]|1|3\d))\d{7}|(?:10|29|3[09]|70[1-5]\d)\d{4,8}')
|
||||
->setExampleNumber('10112345');
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+94
-142
@@ -7,145 +7,97 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'AZ',
|
||||
'countryCode' => 994,
|
||||
'generalDesc' => [
|
||||
'pattern' => '365\\d{6}|(?:[124579]\\d|60|88)\\d{7}',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:2[12]428|3655[02])\\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\\d{5}|(?:(?:1[28]|46)\\d|2(?:[014-6]2|[23]3))\\d{6}',
|
||||
'example' => '123123456',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '36554\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\d{7}',
|
||||
'example' => '401234567',
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '88\\d{7}',
|
||||
'example' => '881234567',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900200\\d{3}',
|
||||
'example' => '900200123',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[1-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'90',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1[28]|2|365|46',
|
||||
'1[28]|2|365[45]|46',
|
||||
'1[28]|2|365(?:4|5[02])|46',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '(0$1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[13-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'90',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1[28]|2|365|46',
|
||||
'1[28]|2|365[45]|46',
|
||||
'1[28]|2|365(?:4|5[02])|46',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '(0$1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[13-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_AZ extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'AZ';
|
||||
protected const COUNTRY_CODE = 994;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('365\d{6}|(?:[124579]\d|60|88)\d{7}')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('36554\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\d{7}')
|
||||
->setExampleNumber('401234567');
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900200\d{3}')
|
||||
->setExampleNumber('900200123');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2[12]428|3655[02])\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\d{5}|(?:(?:1[28]|46)\d|2(?:[014-6]2|[23]3))\d{6}')
|
||||
->setExampleNumber('123123456')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[1-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['90'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['1[28]|2|365|46', '1[28]|2|365[45]|46', '1[28]|2|365(?:4|5[02])|46'])
|
||||
->setNationalPrefixFormattingRule('(0$1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[13-9]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('88\d{7}')
|
||||
->setExampleNumber('881234567');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['90'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['1[28]|2|365|46', '1[28]|2|365[45]|46', '1[28]|2|365(?:4|5[02])|46'])
|
||||
->setNationalPrefixFormattingRule('(0$1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[13-9]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+103
-152
@@ -7,155 +7,106 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BA',
|
||||
'countryCode' => 387,
|
||||
'generalDesc' => [
|
||||
'pattern' => '6\\d{8}|(?:[35689]\\d|49|70)\\d{6}',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
6,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\d{5}',
|
||||
'example' => '30212345',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
6,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '6040\\d{5}|6(?:03|[1-356]|44|7\\d)\\d{6}',
|
||||
'example' => '61123456',
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '8[08]\\d{6}',
|
||||
'example' => '80123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '9[0246]\\d{6}',
|
||||
'example' => '90123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '8[12]\\d{6}',
|
||||
'example' => '82123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '703[235]0\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\d{4}',
|
||||
'example' => '70341234',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'6[1-3]|[7-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[3-5]|6[56]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{3})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'6',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'6[1-3]|[7-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[3-5]|6[56]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{3})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'6',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BA extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BA';
|
||||
protected const COUNTRY_CODE = 387;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('6\d{8}|(?:[35689]\d|49|70)\d{6}')
|
||||
->setPossibleLengthLocalOnly([6])
|
||||
->setPossibleLength([8, 9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('6040\d{5}|6(?:03|[1-356]|44|7\d)\d{6}')
|
||||
->setExampleNumber('61123456');
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('9[0246]\d{6}')
|
||||
->setExampleNumber('90123456')
|
||||
->setPossibleLength([8]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\d{5}')
|
||||
->setExampleNumber('30212345')
|
||||
->setPossibleLengthLocalOnly([6])
|
||||
->setPossibleLength([8]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['[2-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['6[1-3]|[7-9]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern(['[3-5]|6[56]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{3})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['6'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8[08]\d{6}')
|
||||
->setExampleNumber('80123456')
|
||||
->setPossibleLength([8]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8[12]\d{6}')
|
||||
->setExampleNumber('82123456')
|
||||
->setPossibleLength([8]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('703[235]0\d{3}|70(?:2[0-5]|3[0146]|[56]0)\d{4}')
|
||||
->setExampleNumber('70341234')
|
||||
->setPossibleLength([8]);
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['6[1-3]|[7-9]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern(['[3-5]|6[56]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{3})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['6'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+60
-83
@@ -7,86 +7,63 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BB',
|
||||
'countryCode' => 1,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:246|[58]\\d\\d|900)\\d{7}',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '246521[0369]\\d{3}|246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\d|3[2-9])|5(?:20|[34]\\d|54|7[1-3])|6(?:2\\d|38)|7[35]7|9(?:1[89]|63))\\d{4}',
|
||||
'example' => '2464123456',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}',
|
||||
'example' => '2462501234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '8(?:00|33|44|55|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '8002123456',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '(?:246976|900[2-9]\\d\\d)\\d{4}',
|
||||
'example' => '9002123456',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '5002345678',
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '24631\\d{5}',
|
||||
'example' => '2463101234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\d|3[016]|53))\\d{4}',
|
||||
'example' => '2464301234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '011',
|
||||
'nationalPrefix' => '1',
|
||||
'nationalPrefixForParsing' => '([2-9]\\d{6})$|1',
|
||||
'nationalPrefixTransformRule' => '246$1',
|
||||
'numberFormat' => [],
|
||||
'leadingDigits' => '246',
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BB extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BB';
|
||||
protected const COUNTRY_CODE = 1;
|
||||
protected const LEADING_DIGITS = '246';
|
||||
protected const NATIONAL_PREFIX = '1';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '([2-9]\d{6})$|1';
|
||||
protected ?string $internationalPrefix = '011';
|
||||
protected ?string $nationalPrefixTransformRule = '246$1';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:246|[58]\d\d|900)\d{7}')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('246(?:(?:2(?:[3568]\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\d)|69[5-7]|8(?:[2-5]\d|83))\d|52(?:1[147]|20))\d{3}')
|
||||
->setExampleNumber('2462501234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:246976|900[2-9]\d\d)\d{4}')
|
||||
->setExampleNumber('9002123456')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('246521[0369]\d{3}|246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\d|3[2-9])|5(?:20|[34]\d|54|7[1-3])|6(?:2\d|38)|7[35]7|9(?:1[89]|63))\d{4}')
|
||||
->setExampleNumber('2464123456')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8(?:00|33|44|55|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('8002123456');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('52(?:3(?:[2-46-9][02-9]\d|5(?:[02-46-9]\d|5[0-46-9]))|4(?:[2-478][02-9]\d|5(?:[034]\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\d)|9(?:[05-9]\d|2[0-5]|49)))\d{4}|52[34][2-9]1[02-9]\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('5002345678');
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('24631\d{5}')
|
||||
->setExampleNumber('2463101234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\d|3[016]|53))\d{4}')
|
||||
->setExampleNumber('2464301234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+77
-115
@@ -7,118 +7,80 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BD',
|
||||
'countryCode' => 880,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}',
|
||||
'posLength' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:4(?:31\\d\\d|423)|5222)\\d{3}(?:\\d{2})?|8332[6-9]\\d\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\d{4}|(?:2(?:[23]\\d|[45])\\d\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\d{5}|[59]1\\d{5}',
|
||||
'example' => '27111234',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:1[13-9]\\d|644)\\d{7}|(?:3[78]|44|66)[02-9]\\d{7}',
|
||||
'example' => '1812345678',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '80[03]\\d{7}',
|
||||
'example' => '8001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '96(?:0[469]|1[0-47]|3[389]|43|6[69]|7[78])\\d{6}',
|
||||
'example' => '9604123456',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4,6})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'31[5-8]|[459]1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3,7})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3,6})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[13-9]|2[23]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{7,8})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BD extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BD';
|
||||
protected const COUNTRY_CODE = 880;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[1-469]\d{9}|8[0-79]\d{7,8}|[2-79]\d{8}|[2-9]\d{7}|[3-9]\d{6}|[57-9]\d{5}')
|
||||
->setPossibleLength([6, 7, 8, 9, 10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:1[13-9]\d|644)\d{7}|(?:3[78]|44|66)[02-9]\d{7}')
|
||||
->setExampleNumber('1812345678')
|
||||
->setPossibleLength([10]);
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:4(?:31\d\d|423)|5222)\d{3}(?:\d{2})?|8332[6-9]\d\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\d{4}|(?:2(?:[23]\d|[45])\d\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\d{5}|[59]1\d{5}')
|
||||
->setExampleNumber('27111234');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4,6})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['31[5-8]|[459]1'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3,7})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern([
|
||||
'3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3,6})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['[13-9]|2[23]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{7,8})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['2'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('80[03]\d{7}')
|
||||
->setExampleNumber('8001234567')
|
||||
->setPossibleLength([10]);
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('96(?:0[469]|1[0-47]|3[389]|43|6[69]|7[78])\d{6}')
|
||||
->setExampleNumber('9604123456')
|
||||
->setPossibleLength([10]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+83
-120
@@ -7,123 +7,86 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BE',
|
||||
'countryCode' => 32,
|
||||
'generalDesc' => [
|
||||
'pattern' => '4\\d{8}|[1-9]\\d{7}',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '80[2-8]\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}',
|
||||
'example' => '12345678',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '4[5-9]\\d{7}',
|
||||
'example' => '470123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800[1-9]\\d{4}',
|
||||
'example' => '80012345',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '(?:70(?:2[0-57]|3[04-7]|44|6[04-69]|7[0579])|90\\d\\d)\\d{4}',
|
||||
'example' => '90012345',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '7879\\d{4}',
|
||||
'example' => '78791234',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '78(?:0[578]|1[014-8]|2[25]|3[15-8]|48|5[05]|60|7[06-8]|9\\d)\\d{4}',
|
||||
'example' => '78102345',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:80|9)0',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[239]|4[23]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[15-8]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'4',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BE extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BE';
|
||||
protected const COUNTRY_CODE = 32;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('4\d{8}|[1-9]\d{7}')
|
||||
->setPossibleLength([8, 9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('4[5-9]\d{7}')
|
||||
->setExampleNumber('470123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:70(?:2[0-57]|3[04-7]|44|6[04-69]|7[0579])|90\d\d)\d{4}')
|
||||
->setExampleNumber('90012345')
|
||||
->setPossibleLength([8]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('80[2-8]\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\d|6[013-57-9]|71|8[1-79]|9[2-4])\d{6}')
|
||||
->setExampleNumber('12345678')
|
||||
->setPossibleLength([8]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['(?:80|9)0'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[239]|4[23]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[15-8]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['4'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800[1-9]\d{4}')
|
||||
->setExampleNumber('80012345')
|
||||
->setPossibleLength([8]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('7879\d{4}')
|
||||
->setExampleNumber('78791234')
|
||||
->setPossibleLength([8]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('78(?:0[578]|1[014-8]|2[25]|3[15-8]|48|5[05]|60|7[06-8]|9\d)\d{4}')
|
||||
->setExampleNumber('78102345')
|
||||
->setPossibleLength([8]);
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+47
-75
@@ -7,78 +7,50 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BF',
|
||||
'countryCode' => 226,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[025-7]\\d{7}',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\d|50|6[5-7]))\\d{4}',
|
||||
'example' => '20491234',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:0[1-7]|5[0-8]|[67]\\d)\\d{6}',
|
||||
'example' => '70123456',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[025-7]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BF extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BF';
|
||||
protected const COUNTRY_CODE = 226;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[025-7]\d|44)\d{6}')
|
||||
->setPossibleLength([8]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:0[1-7]|44|5[0-8]|[67]\d)\d{6}')
|
||||
->setExampleNumber('70123456');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\d|50|6[5-7]))\d{4}')
|
||||
->setExampleNumber('20491234');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[024-7]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+161
-252
@@ -7,255 +7,164 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BG',
|
||||
'countryCode' => 359,
|
||||
'generalDesc' => [
|
||||
'pattern' => '00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}',
|
||||
'posLength' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
12,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
4,
|
||||
5,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '2\\d{5,7}|(?:43[1-6]|70[1-9])\\d{4,5}|(?:[36]\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\d{5,6}',
|
||||
'example' => '2123456',
|
||||
'posLength' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
4,
|
||||
5,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}',
|
||||
'example' => '43012345',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '(?:00800\\d\\d|800)\\d{5}',
|
||||
'example' => '80012345',
|
||||
'posLength' => [
|
||||
8,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '90\\d{6}',
|
||||
'example' => '90123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '700\\d{5}',
|
||||
'example' => '70012345',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{6})',
|
||||
'format' => '$1',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d)(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'43[1-6]|70[1-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{3,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{2,3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:70|8)0',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{2})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'43[1-7]|7',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[48]|9[08]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d)(\\d)(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'43[1-6]|70[1-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{3,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{2,3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:70|8)0',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{2})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'43[1-7]|7',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[48]|9[08]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BG extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BG';
|
||||
protected const COUNTRY_CODE = 359;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('00800\d{7}|[2-7]\d{6,7}|[89]\d{6,8}|2\d{5}')
|
||||
->setPossibleLengthLocalOnly([4, 5])
|
||||
->setPossibleLength([6, 7, 8, 9, 12]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:43[07-9]|99[69]\d)\d{5}|(?:8[7-9]|98)\d{7}')
|
||||
->setExampleNumber('43012345')
|
||||
->setPossibleLength([8, 9]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('90\d{6}')
|
||||
->setExampleNumber('90123456')
|
||||
->setPossibleLength([8]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2\d{5,7}|(?:43[1-6]|70[1-9])\d{4,5}|(?:[36]\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\d{5,6}')
|
||||
->setExampleNumber('2123456')
|
||||
->setPossibleLengthLocalOnly([4, 5])
|
||||
->setPossibleLength([6, 7, 8]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{6})')
|
||||
->setFormat('$1')
|
||||
->setLeadingDigitsPattern(['1'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d)(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['2'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['43[1-6]|70[1-9]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{3,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['2'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{2,3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['(?:70|8)0'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{2})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['43[1-7]|7'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[48]|9[08]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['9'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:00800\d\d|800)\d{5}')
|
||||
->setExampleNumber('80012345')
|
||||
->setPossibleLength([8, 12]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('700\d{5}')
|
||||
->setExampleNumber('70012345')
|
||||
->setPossibleLength([8]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d)(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['2'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['43[1-6]|70[1-9]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{3,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['2'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{2,3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['(?:70|8)0'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{2})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['43[1-7]|7'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[48]|9[08]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['9'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+54
-73
@@ -7,76 +7,57 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BH',
|
||||
'countryCode' => 973,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[136-9]\\d{7}',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:1(?:3[1356]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|55|7[7-9]|88)|9[69][69])|7(?:[07]\\d\\d|1(?:11|78)))\\d{4}',
|
||||
'example' => '17001234',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:3(?:[0-79]\\d|8[0-57-9])\\d|6(?:3(?:00|33|6[16])|441|6(?:3[03-9]|[69]\\d|7[0-689])))\\d{4}',
|
||||
'example' => '36001234',
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '8[02369]\\d{6}',
|
||||
'example' => '80123456',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '(?:87|9[0-8])\\d{6}',
|
||||
'example' => '90123456',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '84\\d{6}',
|
||||
'example' => '84123456',
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[13679]|8[02-4679]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BH extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BH';
|
||||
protected const COUNTRY_CODE = 973;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[136-9]\d{7}')
|
||||
->setPossibleLength([8]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:3(?:[0-79]\d|8[0-57-9])\d|6(?:3(?:00|33|6[16])|441|6(?:3[03-9]|[69]\d|7[0-689])))\d{4}')
|
||||
->setExampleNumber('36001234');
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:87|9[0-8])\d{6}')
|
||||
->setExampleNumber('90123456');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:1(?:3[1356]|6[0156]|7\d)\d|6(?:1[16]\d|500|6(?:0\d|3[12]|44|55|7[7-9]|88)|9[69][69])|7(?:[07]\d\d|1(?:11|78)))\d{4}')
|
||||
->setExampleNumber('17001234');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[13679]|8[02-4679]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8[02369]\d{6}')
|
||||
->setExampleNumber('80123456');
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('84\d{6}')
|
||||
->setExampleNumber('84123456');
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+47
-75
@@ -7,78 +7,50 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BI',
|
||||
'countryCode' => 257,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[267]\\d|31)\\d{6}',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:22|31)\\d{6}',
|
||||
'example' => '22201234',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:29|[67][125-9])\\d{6}',
|
||||
'example' => '79561234',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2367]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BI extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BI';
|
||||
protected const COUNTRY_CODE = 257;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[267]\d|31)\d{6}')
|
||||
->setPossibleLength([8]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:29|6[124-9]|7[125-9])\d{6}')
|
||||
->setExampleNumber('79561234');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:22|31)\d{6}')
|
||||
->setExampleNumber('22201234');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[2367]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+59
-90
@@ -7,93 +7,62 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BJ',
|
||||
'countryCode' => 229,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:01\\d|[24-689])\\d{7}',
|
||||
'posLength' => [
|
||||
8,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '2090\\d{4}|(?:012\\d\\d|2(?:02|1[037]|2[45]|3[68]|4\\d))\\d{5}',
|
||||
'example' => '0120211234',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:01(?:2[5-9]|[4-69]\\d)|4[0-8]|[56]\\d|9[013-9])\\d{6}',
|
||||
'example' => '0195123456',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '857[58]\\d{4}',
|
||||
'example' => '85751234',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '81\\d{6}',
|
||||
'example' => '81123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[24-689]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4 $5',
|
||||
'leadingDigitsPatterns' => [
|
||||
'0',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BJ extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BJ';
|
||||
protected const COUNTRY_CODE = 229;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:01\d|[24-689])\d{7}')
|
||||
->setPossibleLength([8, 10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:01(?:2[5-9]|[4-69]\d)|4[0-8]|[56]\d|9[013-9])\d{6}')
|
||||
->setExampleNumber('0195123456');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2090\d{4}|(?:012\d\d|2(?:02|1[037]|2[45]|3[68]|4\d))\d{5}')
|
||||
->setExampleNumber('0120211234');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[24-689]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4 $5')
|
||||
->setLeadingDigitsPattern(['0'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('857[58]\d{4}')
|
||||
->setExampleNumber('85751234')
|
||||
->setPossibleLength([8]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('81\d{6}')
|
||||
->setExampleNumber('81123456')
|
||||
->setPossibleLength([8]);
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+46
-66
@@ -7,69 +7,49 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BL',
|
||||
'countryCode' => 590,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}',
|
||||
'example' => '590271234',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}',
|
||||
'example' => '690001234',
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '80[0-5]\\d{6}',
|
||||
'example' => '800012345',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}',
|
||||
'example' => '976012345',
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BL extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BL';
|
||||
protected const COUNTRY_CODE = 590;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:590\d|7090)\d{5}|(?:69|80|9\d)\d{7}')
|
||||
->setPossibleLength([9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:69(?:0\d\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\d)|6(?:1[016-9]|5[0-4]|[67]\d))|7090[0-4])\d{4}')
|
||||
->setExampleNumber('690001234');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('590(?:2[7-9]|3[3-7]|5[12]|87)\d{4}')
|
||||
->setExampleNumber('590271234');
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('80[0-5]\d{6}')
|
||||
->setExampleNumber('800012345');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('9(?:(?:39[5-7]|76[018])\d|475[0-6])\d{4}')
|
||||
->setExampleNumber('976012345');
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+53
-76
@@ -7,79 +7,56 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BM',
|
||||
'countryCode' => 1,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:441|[58]\\d\\d|900)\\d{7}',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '441(?:[46]\\d\\d|5(?:4\\d|60|89))\\d{4}',
|
||||
'example' => '4414123456',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '441(?:[2378]\\d|5[0-39]|9[02])\\d{5}',
|
||||
'example' => '4413701234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '8(?:00|33|44|55|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '8002123456',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900[2-9]\\d{6}',
|
||||
'example' => '9002123456',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '5002345678',
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '011',
|
||||
'nationalPrefix' => '1',
|
||||
'nationalPrefixForParsing' => '([2-9]\\d{6})$|1',
|
||||
'nationalPrefixTransformRule' => '441$1',
|
||||
'numberFormat' => [],
|
||||
'leadingDigits' => '441',
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BM extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BM';
|
||||
protected const COUNTRY_CODE = 1;
|
||||
protected const LEADING_DIGITS = '441';
|
||||
protected const NATIONAL_PREFIX = '1';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '([2-9]\d{6})$|1';
|
||||
protected ?string $internationalPrefix = '011';
|
||||
protected ?string $nationalPrefixTransformRule = '441$1';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:441|[58]\d\d|900)\d{7}')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('441(?:[2378]\d|5[0-39]|9[02])\d{5}')
|
||||
->setExampleNumber('4413701234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900[2-9]\d{6}')
|
||||
->setExampleNumber('9002123456');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('441(?:[46]\d\d|5(?:4\d|60|89))\d{4}')
|
||||
->setExampleNumber('4414123456')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8(?:00|33|44|55|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('8002123456');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('52(?:3(?:[2-46-9][02-9]\d|5(?:[02-46-9]\d|5[0-46-9]))|4(?:[2-478][02-9]\d|5(?:[034]\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\d)|9(?:[05-9]\d|2[0-5]|49)))\d{4}|52[34][2-9]1[02-9]\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('5002345678');
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+49
-74
@@ -7,77 +7,52 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BN',
|
||||
'countryCode' => 673,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[2-578]\\d{6}',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '22[0-7]\\d{4}|(?:2[013-9]|[34]\\d|5[0-25-9])\\d{5}',
|
||||
'example' => '2345678',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:22[89]|[78]\\d\\d)\\d{4}',
|
||||
'example' => '7123456',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '5[34]\\d{5}',
|
||||
'example' => '5345678',
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-578]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BN extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BN';
|
||||
protected const COUNTRY_CODE = 673;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[2-578]\d{6}')
|
||||
->setPossibleLength([7]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:22[89]|[78]\d\d)\d{4}')
|
||||
->setExampleNumber('7123456');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('22[0-7]\d{4}|(?:2[013-9]|[34]\d|5[0-25-9])\d{5}')
|
||||
->setExampleNumber('2345678');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[2-578]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('5[34]\d{5}')
|
||||
->setExampleNumber('5345678');
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+75
-116
@@ -7,119 +7,78 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BO',
|
||||
'countryCode' => 591,
|
||||
'generalDesc' => [
|
||||
'pattern' => '8001\\d{5}|(?:[2-467]\\d|50)\\d{6}',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:2(?:2\\d\\d|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d\\d|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\d\\d|6(?:11|[24689]\\d|72)))\\d{4}',
|
||||
'example' => '22123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '[67]\\d{7}',
|
||||
'example' => '71234567',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '8001[07]\\d{4}',
|
||||
'example' => '800171234',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '50\\d{6}',
|
||||
'example' => '50123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'pattern' => '8001[07]\\d{4}',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00(?:1\\d)?',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0(1\\d)?',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{7})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[235]|4[46]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '0$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{8})',
|
||||
'format' => '$1',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[67]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '0$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'8',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '0$CC $1',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BO extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BO';
|
||||
protected const COUNTRY_CODE = 591;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0(1\d)?';
|
||||
protected ?string $internationalPrefix = '00(?:1\d)?';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8001\d{5}|(?:[2-467]\d|50)\d{6}')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([8, 9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[67]\d{7}')
|
||||
->setExampleNumber('71234567')
|
||||
->setPossibleLength([8]);
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2(?:2\d\d|5(?:11|[258]\d|9[67])|6(?:12|2\d|9[34])|8(?:2[34]|39|62))|3(?:3\d\d|4(?:6\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\d\d|6(?:11|[24689]\d|72)))\d{4}')
|
||||
->setExampleNumber('22123456')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([8]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{7})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[235]|4[46]'])
|
||||
->setDomesticCarrierCodeFormattingRule('0$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{8})')
|
||||
->setFormat('$1')
|
||||
->setLeadingDigitsPattern(['[67]'])
|
||||
->setDomesticCarrierCodeFormattingRule('0$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['8'])
|
||||
->setDomesticCarrierCodeFormattingRule('0$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8001[07]\d{4}')
|
||||
->setExampleNumber('800171234')
|
||||
->setPossibleLength([9]);
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('50\d{6}')
|
||||
->setExampleNumber('50123456')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([8]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8001[07]\d{4}')
|
||||
->setPossibleLength([9]);
|
||||
}
|
||||
}
|
||||
|
||||
+40
-66
@@ -7,69 +7,43 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BQ',
|
||||
'countryCode' => 599,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[34]1|7\\d)\\d{5}',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\d)\\d{3}',
|
||||
'example' => '7151234',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}',
|
||||
'example' => '3181234',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [],
|
||||
'leadingDigits' => '[347]',
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BQ extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BQ';
|
||||
protected const COUNTRY_CODE = 599;
|
||||
protected const LEADING_DIGITS = '[347]';
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[34]1|7\d)\d{5}')
|
||||
->setPossibleLength([7]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\d|9[056])\d)\d{3}')
|
||||
->setExampleNumber('3181234');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\d)\d{3}')
|
||||
->setExampleNumber('7151234');
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+128
-203
@@ -7,206 +7,131 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BR',
|
||||
'countryCode' => 55,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}',
|
||||
'example' => '1123456789',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\d)\\d{7}',
|
||||
'example' => '11961234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
11,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
8,
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{6,7}',
|
||||
'example' => '800123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '300\\d{6}|[59]00\\d{6,7}',
|
||||
'example' => '300123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '(?:30[03]\\d{3}|4(?:0(?:0\\d|20)|370))\\d{4}|300\\d{5}',
|
||||
'example' => '40041234',
|
||||
'posLength' => [
|
||||
8,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'pattern' => '30(?:0\\d{5,7}|3\\d{7})|40(?:0\\d|20)\\d{4}|800\\d{6,7}',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?',
|
||||
'nationalPrefixTransformRule' => '$2',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3,6})',
|
||||
'format' => '$1',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'300|4(?:0[02]|37)',
|
||||
'4(?:02|37)0|[34]00',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-57]',
|
||||
'[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2,3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:[358]|90)0',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{5})(\\d{4})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '($1)',
|
||||
'domesticCarrierCodeFormattingRule' => '0 $CC ($1)',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{5})(\\d{4})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[16][1-9]|[2-57-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '($1)',
|
||||
'domesticCarrierCodeFormattingRule' => '0 $CC ($1)',
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'300|4(?:0[02]|37)',
|
||||
'4(?:02|37)0|[34]00',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2,3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:[358]|90)0',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '($1)',
|
||||
'domesticCarrierCodeFormattingRule' => '0 $CC ($1)',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{5})(\\d{4})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[16][1-9]|[2-57-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '($1)',
|
||||
'domesticCarrierCodeFormattingRule' => '0 $CC ($1)',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BR extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BR';
|
||||
protected const COUNTRY_CODE = 55;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\d{10,11}))?';
|
||||
protected ?string $internationalPrefix = '00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)';
|
||||
protected ?string $nationalPrefixTransformRule = '$2';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[1-467]\d{9,10}|55[0-46-9]\d{8}|[34]\d{7}|55\d{7,8}|(?:5[0-46-9]|[89]\d)\d{7,9}')
|
||||
->setPossibleLength([8, 9, 10, 11]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\d)\d{7}')
|
||||
->setExampleNumber('11961234567')
|
||||
->setPossibleLengthLocalOnly([8, 9])
|
||||
->setPossibleLength([10, 11]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[59]00\d{6,7}')
|
||||
->setExampleNumber('500123456')
|
||||
->setPossibleLength([9, 10]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\d{7}')
|
||||
->setExampleNumber('1123456789')
|
||||
->setPossibleLengthLocalOnly([8])
|
||||
->setPossibleLength([10]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3,6})')
|
||||
->setFormat('$1')
|
||||
->setLeadingDigitsPattern(['1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['300|4(?:0[02]|37|86)', '300|4(?:0(?:0|20)|370|864)'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['[2-57]', '[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2,3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['(?:[358]|90)0'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{5})(\d{4})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['9'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern(['(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]'])
|
||||
->setNationalPrefixFormattingRule('($1)')
|
||||
->setDomesticCarrierCodeFormattingRule('0 $CC ($1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{5})(\d{4})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern(['[16][1-9]|[2-57-9]'])
|
||||
->setNationalPrefixFormattingRule('($1)')
|
||||
->setDomesticCarrierCodeFormattingRule('0 $CC ($1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{6,7}')
|
||||
->setExampleNumber('800123456')
|
||||
->setPossibleLength([9, 10]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:30[03]\d{3}|4(?:0(?:0\d|20)|370|864))\d{4}|300\d{5}')
|
||||
->setExampleNumber('40041234')
|
||||
->setPossibleLength([8, 10]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:30[03]\d{3}|4(?:0(?:0\d|20)|864))\d{4}|800\d{6,7}|300\d{5}')
|
||||
->setPossibleLength([8, 9, 10]);
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['300|4(?:0[02]|37|86)', '300|4(?:0(?:0|20)|370|864)'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2,3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['(?:[358]|90)0'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern(['(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]'])
|
||||
->setNationalPrefixFormattingRule('($1)')
|
||||
->setDomesticCarrierCodeFormattingRule('0 $CC ($1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{5})(\d{4})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern(['[16][1-9]|[2-57-9]'])
|
||||
->setNationalPrefixFormattingRule('($1)')
|
||||
->setDomesticCarrierCodeFormattingRule('0 $CC ($1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+56
-78
@@ -7,81 +7,59 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BS',
|
||||
'countryCode' => 1,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:242|[58]\\d\\d|900)\\d{7}',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-5]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}',
|
||||
'example' => '2423456789',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|3[0-4]|[89]9))\\d{4}',
|
||||
'example' => '2423591234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '8002123456',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900[2-9]\\d{6}',
|
||||
'example' => '9002123456',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '5002345678',
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '242225\\d{4}',
|
||||
'example' => '2422250123',
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '011',
|
||||
'nationalPrefix' => '1',
|
||||
'nationalPrefixForParsing' => '([3-8]\\d{6})$|1',
|
||||
'nationalPrefixTransformRule' => '242$1',
|
||||
'numberFormat' => [],
|
||||
'leadingDigits' => '242',
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BS extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BS';
|
||||
protected const COUNTRY_CODE = 1;
|
||||
protected const LEADING_DIGITS = '242';
|
||||
protected const NATIONAL_PREFIX = '1';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '([3-8]\d{6})$|1';
|
||||
protected ?string $internationalPrefix = '011';
|
||||
protected ?string $nationalPrefixTransformRule = '242$1';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:242|[58]\d\d|900)\d{7}')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\d|3[0-4]|[89]9))\d{4}')
|
||||
->setExampleNumber('2423591234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900[2-9]\d{6}')
|
||||
->setExampleNumber('9002123456');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-5]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\d{4}')
|
||||
->setExampleNumber('2423456789')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('242300\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('8002123456')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('52(?:3(?:[2-46-9][02-9]\d|5(?:[02-46-9]\d|5[0-46-9]))|4(?:[2-478][02-9]\d|5(?:[034]\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\d)|9(?:[05-9]\d|2[0-5]|49)))\d{4}|52[34][2-9]1[02-9]\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('5002345678');
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('242225\d{4}')
|
||||
->setExampleNumber('2422250123');
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+73
-126
@@ -7,129 +7,76 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BT',
|
||||
'countryCode' => 975,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[17]\\d{7}|[2-8]\\d{6}',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
6,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}',
|
||||
'example' => '2345678',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
6,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:1[67]|77)\\d{6}',
|
||||
'example' => '17123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-7]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-68]|7[246]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1[67]|7',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-68]|7[246]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1[67]|7',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BT extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BT';
|
||||
protected const COUNTRY_CODE = 975;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[17]\d{7}|[2-8]\d{6}')
|
||||
->setPossibleLengthLocalOnly([6])
|
||||
->setPossibleLength([7, 8]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:1[67]|77)\d{6}')
|
||||
->setExampleNumber('17123456')
|
||||
->setPossibleLength([8]);
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\d{5}')
|
||||
->setExampleNumber('2345678')
|
||||
->setPossibleLengthLocalOnly([6])
|
||||
->setPossibleLength([7]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[2-7]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[2-68]|7[246]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['1[67]|7'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[2-68]|7[246]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['1[67]|7'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+78
-125
@@ -7,128 +7,81 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BW',
|
||||
'countryCode' => 267,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013]|81)|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[013467]))\\d{4}',
|
||||
'example' => '2401234',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:321|7[1-8]\\d)\\d{5}',
|
||||
'example' => '71123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '(?:0800|800\\d)\\d{6}',
|
||||
'example' => '0800012345',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '90\\d{5}',
|
||||
'example' => '9012345',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '79(?:1(?:[0-2]\\d|3[0-3])|2[0-7]\\d)\\d{3}',
|
||||
'example' => '79101234',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{5})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'90',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[24-6]|3[15-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[37]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'0',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'8',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BW extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BW';
|
||||
protected const COUNTRY_CODE = 267;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:0800|(?:[37]|800)\d)\d{6}|(?:[2-6]\d|90)\d{5}')
|
||||
->setPossibleLength([7, 8, 10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:321|7[1-8]\d)\d{5}')
|
||||
->setExampleNumber('71123456')
|
||||
->setPossibleLength([8]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('90\d{5}')
|
||||
->setExampleNumber('9012345')
|
||||
->setPossibleLength([7]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\d|7[013]|81)|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[013467]))\d{4}')
|
||||
->setExampleNumber('2401234')
|
||||
->setPossibleLength([7]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{5})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['90'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[24-6]|3[15-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[37]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['0'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['8'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:0800|800\d)\d{6}')
|
||||
->setExampleNumber('0800012345')
|
||||
->setPossibleLength([10]);
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('79(?:1(?:[0-2]\d|3[0-8])|2[0-7]\d)\d{3}')
|
||||
->setExampleNumber('79101234')
|
||||
->setPossibleLength([8]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+98
-145
@@ -7,148 +7,101 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BY',
|
||||
'countryCode' => 375,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}',
|
||||
'posLength' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
5,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d\\d)|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}',
|
||||
'example' => '152450911',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\d)\\d{6}',
|
||||
'example' => '294911911',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{3,7}|8(?:0[13]|20\\d)\\d{7}',
|
||||
'example' => '8011234567',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '(?:810|902)\\d{7}',
|
||||
'example' => '9021234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '249\\d{6}',
|
||||
'example' => '249123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'pattern' => '800\\d{3,7}|(?:8(?:0[13]|10|20\\d)|902)\\d{7}',
|
||||
],
|
||||
'internationalPrefix' => '810',
|
||||
'preferredInternationalPrefix' => '8~10',
|
||||
'nationalPrefix' => '8',
|
||||
'nationalPrefixForParsing' => '0|80?',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'800',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '8 $1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{2,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'800',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '8 $1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{2})(\\d{3})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])',
|
||||
'1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '8 0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2-$3-$4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1(?:[56]|7[467])|2[1-3]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '8 0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2-$3-$4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[1-4]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '8 0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3,4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[89]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '8 $1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BY extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BY';
|
||||
protected const COUNTRY_CODE = 375;
|
||||
protected const NATIONAL_PREFIX = '8';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0|80?';
|
||||
protected ?string $internationalPrefix = '810';
|
||||
protected ?string $preferredInternationalPrefix = '8~10';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[12]\d|33|44|902)\d{7}|8(?:0[0-79]\d{5,7}|[1-7]\d{9})|8(?:1[0-489]|[5-79]\d)\d{7}|8[1-79]\d{6,7}|8[0-79]\d{5}|8\d{5}')
|
||||
->setPossibleLengthLocalOnly([5])
|
||||
->setPossibleLength([6, 7, 8, 9, 10, 11]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2(?:5[5-79]|9[1-9])|(?:33|44)\d)\d{6}')
|
||||
->setExampleNumber('294911911')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:810|902)\d{7}')
|
||||
->setExampleNumber('9021234567')
|
||||
->setPossibleLength([10]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:1(?:5(?:1[1-5]|[24]\d|6[2-4]|9[1-7])|6(?:[235]\d|4[1-7])|7\d\d)|2(?:1(?:[246]\d|3[0-35-9]|5[1-9])|2(?:[235]\d|4[0-8])|3(?:[26]\d|3[02-79]|4[024-7]|5[03-7])))\d{5}')
|
||||
->setExampleNumber('152450911')
|
||||
->setPossibleLengthLocalOnly([5, 6, 7])
|
||||
->setPossibleLength([9]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['800'])
|
||||
->setNationalPrefixFormattingRule('8 $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{2,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['800'])
|
||||
->setNationalPrefixFormattingRule('8 $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{2})(\d{3})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern([
|
||||
'1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])',
|
||||
'1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('8 0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2-$3-$4')
|
||||
->setLeadingDigitsPattern(['1(?:[56]|7[467])|2[1-3]'])
|
||||
->setNationalPrefixFormattingRule('8 0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2-$3-$4')
|
||||
->setLeadingDigitsPattern(['[1-4]'])
|
||||
->setNationalPrefixFormattingRule('8 0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3,4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[89]'])
|
||||
->setNationalPrefixFormattingRule('8 $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{3,7}|8(?:0[13]|20\d)\d{7}')
|
||||
->setExampleNumber('8011234567');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('249\d{6}')
|
||||
->setExampleNumber('249123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{3,7}|(?:8(?:0[13]|10|20\d)|902)\d{7}');
|
||||
}
|
||||
}
|
||||
|
||||
+57
-93
@@ -7,96 +7,60 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'BZ',
|
||||
'countryCode' => 501,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:0800\\d|[2-8])\\d{6}',
|
||||
'posLength' => [
|
||||
7,
|
||||
11,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:2(?:[02]\\d|36|[68]0)|[3-58](?:[02]\\d|[68]0)|7(?:[02]\\d|32|[68]0))\\d{4}',
|
||||
'example' => '2221234',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '6[0-35-7]\\d{5}',
|
||||
'example' => '6221234',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '0800\\d{7}',
|
||||
'example' => '08001234123',
|
||||
'posLength' => [
|
||||
11,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-8]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{4})(\\d{3})',
|
||||
'format' => '$1-$2-$3-$4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'0',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_BZ extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'BZ';
|
||||
protected const COUNTRY_CODE = 501;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:0800\d|[2-8])\d{6}')
|
||||
->setPossibleLength([7, 11]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('6[0-35-7]\d{5}')
|
||||
->setExampleNumber('6221234')
|
||||
->setPossibleLength([7]);
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2(?:[02]\d|36|[68]0)|[3-58](?:[02]\d|[68]0)|7(?:[02]\d|32|[68]0))\d{4}')
|
||||
->setExampleNumber('2221234')
|
||||
->setPossibleLength([7]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['[2-8]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{4})(\d{3})')
|
||||
->setFormat('$1-$2-$3-$4')
|
||||
->setLeadingDigitsPattern(['0'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('0800\d{7}')
|
||||
->setExampleNumber('08001234123')
|
||||
->setPossibleLength([11]);
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+62
-92
@@ -7,95 +7,65 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CA',
|
||||
'countryCode' => 1,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[2-9]\\d{9}|3\\d{6}',
|
||||
'posLength' => [
|
||||
7,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\d{6}',
|
||||
'example' => '5062345678',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\d{6}',
|
||||
'example' => '5062345678',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '8(?:00|33|44|55|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '8002123456',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900[2-9]\\d{6}',
|
||||
'example' => '9002123456',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\d{6}',
|
||||
'example' => '5219023456',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '600[2-9]\\d{6}',
|
||||
'example' => '6002012345',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '310\\d{4}',
|
||||
'example' => '3101234',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '011',
|
||||
'nationalPrefix' => '1',
|
||||
'nationalPrefixForParsing' => '1',
|
||||
'sameMobileAndFixedLinePattern' => true,
|
||||
'numberFormat' => [],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CA extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CA';
|
||||
protected const COUNTRY_CODE = 1;
|
||||
protected const NATIONAL_PREFIX = '1';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '1';
|
||||
protected ?string $internationalPrefix = '011';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
protected bool $sameMobileAndFixedLinePattern = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[2-9]\d{9}|3\d{6}')
|
||||
->setPossibleLength([7, 10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\d{6}')
|
||||
->setExampleNumber('5062345678')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([10]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900[2-9]\d{6}')
|
||||
->setExampleNumber('9002123456')
|
||||
->setPossibleLength([10]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\d{6}')
|
||||
->setExampleNumber('5062345678')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([10]);
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8(?:00|33|44|55|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('8002123456')
|
||||
->setPossibleLength([10]);
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('52(?:3(?:[2-46-9][02-9]\d|5(?:[02-46-9]\d|5[0-46-9]))|4(?:[2-478][02-9]\d|5(?:[034]\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\d)|9(?:[05-9]\d|2[0-5]|49)))\d{4}|52[34][2-9]1[02-9]\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\d{6}')
|
||||
->setExampleNumber('5219023456')
|
||||
->setPossibleLength([10]);
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('600[2-9]\d{6}')
|
||||
->setExampleNumber('6002012345')
|
||||
->setPossibleLength([10]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('310\d{4}')
|
||||
->setExampleNumber('3101234')
|
||||
->setPossibleLength([7]);
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+58
-95
@@ -7,98 +7,61 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CC',
|
||||
'countryCode' => 61,
|
||||
'generalDesc' => [
|
||||
'pattern' => '1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}',
|
||||
'posLength' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}',
|
||||
'example' => '891621234',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}',
|
||||
'example' => '412345678',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '180(?:0\\d{3}|2)\\d{3}',
|
||||
'example' => '1800123456',
|
||||
'posLength' => [
|
||||
7,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '190[0-26]\\d{6}',
|
||||
'example' => '1900123456',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}',
|
||||
'example' => '1300123456',
|
||||
'posLength' => [
|
||||
6,
|
||||
8,
|
||||
10,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}',
|
||||
'example' => '147101234',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011',
|
||||
'preferredInternationalPrefix' => '0011',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '([59]\\d{7})$|0',
|
||||
'nationalPrefixTransformRule' => '8$1',
|
||||
'numberFormat' => [],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CC extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CC';
|
||||
protected const COUNTRY_CODE = 61;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '([59]\d{7})$|0';
|
||||
protected ?string $internationalPrefix = '001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011';
|
||||
protected ?string $preferredInternationalPrefix = '0011';
|
||||
protected ?string $nationalPrefixTransformRule = '8$1';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1(?:[0-79]\d{8}(?:\d{2})?|8[0-24-9]\d{7})|[148]\d{8}|1\d{5,7}')
|
||||
->setPossibleLength([6, 7, 8, 9, 10, 12]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('4(?:79[01]|83[0-389]|94[0-478])\d{5}|4(?:[0-36]\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-37-9])\d{6}')
|
||||
->setExampleNumber('412345678')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('190[0-26]\d{6}')
|
||||
->setExampleNumber('1900123456')
|
||||
->setPossibleLength([10]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\d|70[23]|959))\d{3}')
|
||||
->setExampleNumber('891621234')
|
||||
->setPossibleLengthLocalOnly([8])
|
||||
->setPossibleLength([9]);
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('180(?:0\d{3}|2)\d{3}')
|
||||
->setExampleNumber('1800123456')
|
||||
->setPossibleLength([7, 10]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('13(?:00\d{6}(?:\d{2})?|45[0-4]\d{3})|13\d{4}')
|
||||
->setExampleNumber('1300123456')
|
||||
->setPossibleLength([6, 8, 10, 12]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('14(?:5(?:1[0458]|[23][458])|71\d)\d{4}')
|
||||
->setExampleNumber('147101234')
|
||||
->setPossibleLength([9]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+81
-129
@@ -7,132 +7,84 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CD',
|
||||
'countryCode' => 243,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:(?:12|573)\\d\\d|276)\\d{5}|[1-6]\\d{6}',
|
||||
'example' => '1234567',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '88\\d{5}|(?:8[0-69]|9[017-9])\\d{7}',
|
||||
'example' => '991234567',
|
||||
'posLength' => [
|
||||
7,
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'88',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{5})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[1-6]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[89]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'5',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CD extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CD';
|
||||
protected const COUNTRY_CODE = 243;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:(?:[189]|5\d)\d|2)\d{7}|[1-68]\d{6}')
|
||||
->setPossibleLength([7, 8, 9, 10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('88\d{5}|(?:8[0-69]|9[017-9])\d{7}')
|
||||
->setExampleNumber('991234567')
|
||||
->setPossibleLength([7, 9]);
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:(?:12|573)\d\d|276)\d{5}|[1-6]\d{6}')
|
||||
->setExampleNumber('1234567');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['88'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{5})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[1-6]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['2'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[89]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['5'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+49
-74
@@ -7,77 +7,52 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CF',
|
||||
'countryCode' => 236,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[27]\\d{3}|8776)\\d{4}',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '2[12]\\d{6}',
|
||||
'example' => '21612345',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '7[024-7]\\d{6}',
|
||||
'example' => '70012345',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '8776\\d{4}',
|
||||
'example' => '87761234',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[278]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CF extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CF';
|
||||
protected const COUNTRY_CODE = 236;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[27]\d{3}|8776)\d{4}')
|
||||
->setPossibleLength([8]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('7[024-7]\d{6}')
|
||||
->setExampleNumber('70012345');
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8776\d{4}')
|
||||
->setExampleNumber('87761234');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2[12]\d{6}')
|
||||
->setExampleNumber('21612345');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[278]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+54
-83
@@ -7,86 +7,57 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CG',
|
||||
'countryCode' => 242,
|
||||
'generalDesc' => [
|
||||
'pattern' => '222\\d{6}|(?:0\\d|80)\\d{7}',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '222[1-589]\\d{5}',
|
||||
'example' => '222123456',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}',
|
||||
'example' => '061234567',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '80[0-2]\\d{6}',
|
||||
'example' => '800123456',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'8',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[02]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CG extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CG';
|
||||
protected const COUNTRY_CODE = 242;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('222\d{6}|(?:0\d|80)\d{7}')
|
||||
->setPossibleLength([9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('026(?:1[0-5]|6[6-9])\d{4}|0(?:[14-6]\d\d|2(?:40|5[5-8]|6[07-9]))\d{5}')
|
||||
->setExampleNumber('061234567');
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('80[0-2]\d{6}')
|
||||
->setExampleNumber('800123456');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('222[1-589]\d{5}')
|
||||
->setExampleNumber('222123456');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['8'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[02]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+86
-117
@@ -7,120 +7,89 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CH',
|
||||
'countryCode' => 41,
|
||||
'generalDesc' => [
|
||||
'pattern' => '8\\d{11}|[2-9]\\d{8}',
|
||||
'posLength' => [
|
||||
9,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}',
|
||||
'example' => '212345678',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:6[89]|7[235-9])\\d{7}',
|
||||
'example' => '781234567',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{6}',
|
||||
'example' => '800123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '90[016]\\d{6}',
|
||||
'example' => '900123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '84[0248]\\d{6}',
|
||||
'example' => '840123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '878\\d{6}',
|
||||
'example' => '878123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'pattern' => '74[0248]\\d{6}',
|
||||
'example' => '740123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '5[18]\\d{7}',
|
||||
'example' => '581234567',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'pattern' => '860\\d{9}',
|
||||
'example' => '860123456789',
|
||||
'posLength' => [
|
||||
12,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'8[047]|90',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-79]|81',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4 $5',
|
||||
'leadingDigitsPatterns' => [
|
||||
'8',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CH extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CH';
|
||||
protected const COUNTRY_CODE = 41;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8\d{11}|[2-9]\d{8}')
|
||||
->setPossibleLength([9, 12]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:6[89]|7[235-9])\d{7}')
|
||||
->setExampleNumber('781234567')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('90[016]\d{6}')
|
||||
->setExampleNumber('900123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\d{7}')
|
||||
->setExampleNumber('212345678')
|
||||
->setPossibleLength([9]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['8[047]|90'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[2-79]|81'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{3})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4 $5')
|
||||
->setLeadingDigitsPattern(['8'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{6}')
|
||||
->setExampleNumber('800123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('84[0248]\d{6}')
|
||||
->setExampleNumber('840123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('878\d{6}')
|
||||
->setExampleNumber('878123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('74[0248]\d{6}')
|
||||
->setExampleNumber('740123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('5[18]\d{7}')
|
||||
->setExampleNumber('581234567')
|
||||
->setPossibleLength([9]);
|
||||
$this->voicemail = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('860\d{9}')
|
||||
->setExampleNumber('860123456789')
|
||||
->setPossibleLength([12]);
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+52
-84
@@ -7,87 +7,55 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CI',
|
||||
'countryCode' => 225,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[02]\\d{9}',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '2(?:[15]\\d{3}|7(?:2(?:0[23]|1[2357]|2[245]|3[45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\d{5}',
|
||||
'example' => '2123456789',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '0[157]\\d{8}',
|
||||
'example' => '0123456789',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d)(\\d{5})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{4})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'0',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CI extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CI';
|
||||
protected const COUNTRY_CODE = 225;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[02]\d{9}')
|
||||
->setPossibleLength([10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('0[157]\d{8}')
|
||||
->setExampleNumber('0123456789');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2(?:[15]\d{3}|7(?:2(?:0[23]|1[2357]|2[245]|3[45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\d{5}')
|
||||
->setExampleNumber('2123456789');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d)(\d{5})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['2'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{4})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['0'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+47
-75
@@ -7,78 +7,50 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CK',
|
||||
'countryCode' => 682,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[2-578]\\d{4}',
|
||||
'posLength' => [
|
||||
5,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:2\\d|3[13-7]|4[1-5])\\d{3}',
|
||||
'example' => '21234',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '[578]\\d{4}',
|
||||
'example' => '71234',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-578]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CK extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CK';
|
||||
protected const COUNTRY_CODE = 682;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[2-578]\d{4}')
|
||||
->setPossibleLength([5]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[578]\d{4}')
|
||||
->setExampleNumber('71234');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2\d|3[13-7]|4[1-5])\d{3}')
|
||||
->setExampleNumber('21234');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[2-578]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+159
-243
@@ -7,246 +7,162 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CL',
|
||||
'countryCode' => 56,
|
||||
'generalDesc' => [
|
||||
'pattern' => '12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}',
|
||||
'posLength' => [
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}',
|
||||
'example' => '221234567',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}',
|
||||
'example' => '221234567',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '(?:123|8)00\\d{6}',
|
||||
'example' => '800123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
11,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '600\\d{7,8}',
|
||||
'example' => '6001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
11,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '44\\d{7}',
|
||||
'example' => '441234567',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'pattern' => '600\\d{7,8}',
|
||||
'posLength' => [
|
||||
10,
|
||||
11,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0',
|
||||
'sameMobileAndFixedLinePattern' => true,
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{4})',
|
||||
'format' => '$1',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1(?:[03-589]|21)|[29]0|78',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{5})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'219',
|
||||
'2196',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '($1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'44',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2[1-36]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '($1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9[2-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '($1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'60|8',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{2})(\\d{3})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'60',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{5})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'219',
|
||||
'2196',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '($1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'44',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2[1-36]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '($1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9[2-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '($1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'60|8',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{2})(\\d{3})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'60',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CL extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CL';
|
||||
protected const COUNTRY_CODE = 56;
|
||||
|
||||
protected ?string $internationalPrefix = '(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('12300\d{6}|6\d{9,10}|[2-9]\d{8}')
|
||||
->setPossibleLength([9, 10, 11]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2(?:1982[0-6]|3314[05-9])\d{3}|(?:2(?:1(?:160|962)|2\d{3}|3(?:(?:2\d|50)\d|3(?:[03467]\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-389]|9[0-8])|600)|646[59])|(?:(?:3[2-5]|[47][1-35]|5[1-3578]|6[13-57])\d|8(?:0[1-8]|[1-9]\d))\d\d|9(?:(?:10[01]|(?:[2458]\d|7[1-9])\d)\d|3(?:[0-57-9]\d\d|6(?:0[02-9]|[1-9]\d))|6(?:[0-8]\d\d|9(?:[02-79]\d|1[05-9]))|9(?:[03-9]\d\d|1(?:[0235-9]\d|4[0-24-9])|2(?:[0-79]\d|8[0-46-9]))))\d{4}')
|
||||
->setExampleNumber('221234567')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2(?:1982[0-6]|3314[05-9])\d{3}|(?:2(?:1(?:160|962)|2\d{3}|3(?:(?:2\d|50)\d|3(?:[03467]\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-389]|9[0-8])|600)|646[59])|(?:(?:3[2-5]|[47][1-35]|5[1-3578])\d|6(?:00|[13-57]\d)|8(?:0[1-9]|[1-9]\d))\d\d|9(?:(?:10[01]|(?:[2458]\d|7[1-9])\d)\d|3(?:[0-57-9]\d\d|6(?:0[02-9]|[1-9]\d))|6(?:[0-8]\d\d|9(?:[02-79]\d|1[05-9]))|9(?:[03-9]\d\d|1(?:[0235-9]\d|4[0-24-9])|2(?:[0-79]\d|8[0-46-9]))))\d{4}')
|
||||
->setExampleNumber('600123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})')
|
||||
->setFormat('$1')
|
||||
->setLeadingDigitsPattern(['1(?:[03-589]|21)|[29]0|78'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{5})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['219', '2196'])
|
||||
->setNationalPrefixFormattingRule('($1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['60|809'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['44'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['2[1-36]'])
|
||||
->setNationalPrefixFormattingRule('($1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['9(?:10|[2-9])'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])'])
|
||||
->setNationalPrefixFormattingRule('($1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['60|8'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{2})(\d{3})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['60'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:123|8)00\d{6}')
|
||||
->setExampleNumber('800123456')
|
||||
->setPossibleLength([9, 11]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('600\d{7,8}')
|
||||
->setExampleNumber('6001234567')
|
||||
->setPossibleLength([10, 11]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('44\d{7}')
|
||||
->setExampleNumber('441234567')
|
||||
->setPossibleLength([9]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('600\d{7,8}')
|
||||
->setPossibleLength([10, 11]);
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{5})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['219', '2196'])
|
||||
->setNationalPrefixFormattingRule('($1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['60|809'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['44'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['2[1-36]'])
|
||||
->setNationalPrefixFormattingRule('($1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['9(?:10|[2-9])'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])'])
|
||||
->setNationalPrefixFormattingRule('($1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['60|8'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{2})(\d{3})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['60'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+57
-91
@@ -7,94 +7,60 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CM',
|
||||
'countryCode' => 237,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[26]\\d{8}|88\\d{6,7}',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '2(?:22|33)\\d{6}',
|
||||
'example' => '222123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:24[23]|6(?:[25-9]\\d|40))\\d{6}',
|
||||
'example' => '671234567',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '88\\d{6,7}',
|
||||
'example' => '88012345',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'88',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4 $5',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[26]|88',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CM extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CM';
|
||||
protected const COUNTRY_CODE = 237;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[26]\d{8}|88\d{6,7}')
|
||||
->setPossibleLength([8, 9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:24[23]|6(?:[25-9]\d|40))\d{6}')
|
||||
->setExampleNumber('671234567')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2(?:22|33)\d{6}')
|
||||
->setExampleNumber('222123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['88'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4 $5')
|
||||
->setLeadingDigitsPattern(['[26]|88'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('88\d{6,7}')
|
||||
->setExampleNumber('88012345');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+253
-376
@@ -7,379 +7,256 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CN',
|
||||
'countryCode' => 86,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
5,
|
||||
6,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:10(?:[02-79]\\d\\d|[18](?:0[1-9]|[1-9]\\d))|2(?:[02-57-9]\\d{3}|1(?:[18](?:0[1-9]|[1-9]\\d)|[2-79]\\d\\d))|(?:41[03]|8078|9(?:78|94))\\d\\d)\\d{5}|(?:10|2[0-57-9])(?:1(?:00|23)\\d\\d|95\\d{3,4})|(?:41[03]|9(?:78|94))(?:100\\d\\d|95\\d{3,4})|8078123|(?:43[35]|754|851)\\d{7,8}|(?:43[35]|754|851)(?:1(?:00\\d|23)\\d|95\\d{3,4})|(?:3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\d{7}|1(?:0(?:0\\d\\d(?:\\d{3})?|[1-9]\\d{5})|[13-9]\\d{6}|2(?:[0-24-9]\\d{5}|3\\d(?:\\d{4})?))|9(?:[0-46-9]\\d{6}|5\\d{3}(?:\\d(?:\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[24-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-8]\\d{6}|1(?:0(?:0\\d\\d(?:\\d{2})?|[1-9]\\d{4})|[13-9]\\d{5}|2(?:[0-24-9]\\d{4}|3\\d(?:\\d{3})?))|9(?:[0-46-9]\\d{5}|5\\d{3,5}))',
|
||||
'example' => '1012345678',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
5,
|
||||
6,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}',
|
||||
'example' => '13123456789',
|
||||
'posLength' => [
|
||||
11,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '(?:(?:10|21)8|8)00\\d{7}',
|
||||
'example' => '8001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '16[08]\\d{5}',
|
||||
'example' => '16812345',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '10(?:10\\d{4}|96\\d{3,4})|400\\d{7}|950\\d{7,8}|(?:2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}',
|
||||
'example' => '4001234567',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
5,
|
||||
6,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'pattern' => '(?:(?:10|21)8|[48])00\\d{7}|950\\d{7,8}',
|
||||
'posLength' => [
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00|1(?:[12]\\d|79)\\d\\d00',
|
||||
'preferredInternationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '(1(?:[12]\\d|79)\\d\\d)|0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{5,6})',
|
||||
'format' => '$1',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1(?:00|2[13])|9[56]',
|
||||
'1(?:00|2(?:1|39))|9[56]',
|
||||
'1(?:00|2(?:1|395))|9[56]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{5,6})',
|
||||
'format' => '$1',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1(?:0|23)|781|[1-9]12',
|
||||
'1(?:0|23)|7812|[1-9]123',
|
||||
'1(?:0|23(?:[0-8]|9[0-46-9]))|78123|[1-9]123',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{5,6})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]',
|
||||
'(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1',
|
||||
'10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12',
|
||||
'10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123',
|
||||
'10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[1-9]',
|
||||
'1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])',
|
||||
'1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|[3-9]',
|
||||
'1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|1[03]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9]|78|94)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-9]|1(?:[013-9]|2[0-24-9]))',
|
||||
'1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|1[03]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:0(?:[0-689]|7[0-79])|1[01459]|2[0-489]|[46]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9]|78|94)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-9]|1(?:[013-9]|2[0-24-9]))',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'16[08]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{5,6})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]',
|
||||
'(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]',
|
||||
'85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])',
|
||||
'85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[1-9]',
|
||||
'1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[0-8]|9[0-47-9])|6)|[3-9]',
|
||||
'1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|26|3(?:[0268]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23][0-8])|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:33|85[23]9)[0-46-9]|(?:2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])',
|
||||
'1(?:0[02-8]|[1-9])|2(?:[0-57-9][0-8]|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:10|2[0-57-9])9[0-47-9]|(?:101|58|85[23]10)[1-9]|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:4|80)0',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'10|2(?:[02-57-9]|1[1-9])',
|
||||
'10|2(?:[02-57-9]|1[1-9])',
|
||||
'10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{7,8})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'80',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[3-578]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1[3-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[12]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{5,6})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]',
|
||||
'(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1',
|
||||
'10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12',
|
||||
'10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123',
|
||||
'10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{5,6})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]',
|
||||
'(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]',
|
||||
'85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])',
|
||||
'85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'(?:4|80)0',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'10|2(?:[02-57-9]|1[1-9])',
|
||||
'10|2(?:[02-57-9]|1[1-9])',
|
||||
'10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{7,8})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'80',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[3-578]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1[3-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[12]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
'nationalPrefixOptionalWhenFormatting' => true,
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CN extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CN';
|
||||
protected const COUNTRY_CODE = 86;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '(1(?:[12]\d|79)\d\d)|0';
|
||||
protected ?string $internationalPrefix = '00|1(?:[12]\d|79)\d\d00';
|
||||
protected ?string $preferredInternationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:(?:1[03-689]|2\d)\d\d|6)\d{8}|1\d{10}|[126]\d{6}(?:\d(?:\d{2})?)?|86\d{5,6}|(?:[3-579]\d|8[0-57-9])\d{5,9}')
|
||||
->setPossibleLengthLocalOnly([5, 6])
|
||||
->setPossibleLength([7, 8, 9, 10, 11, 12]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1740[0-5]\d{6}|1(?:[38]\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\d{8}')
|
||||
->setExampleNumber('13123456789')
|
||||
->setPossibleLength([11]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('16[08]\d{5}')
|
||||
->setExampleNumber('16812345')
|
||||
->setPossibleLength([8]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:10(?:[02-79]\d\d|[18](?:0[1-9]|[1-9]\d))|2(?:[02-57-9]\d{3}|1(?:[18](?:0[1-9]|[1-9]\d)|[2-79]\d\d))|(?:41[03]|8078|9(?:78|94))\d\d)\d{5}|(?:10|2[0-57-9])(?:1(?:00|23)\d\d|95\d{3,4})|(?:41[03]|9(?:78|94))(?:100\d\d|95\d{3,4})|8078123|(?:43[35]|754|851)\d{7,8}|(?:43[35]|754|851)(?:1(?:00\d|23)\d|95\d{3,4})|(?:3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\d{7}|1(?:0(?:0\d\d(?:\d{3})?|[1-9]\d{5})|[13-9]\d{6}|2(?:[0-24-9]\d{5}|3\d(?:\d{4})?))|9(?:[0-46-9]\d{6}|5\d{3}(?:\d(?:\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\d|7[02-68]|9[1-68])|4(?:1[24-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|3\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-8]\d{6}|1(?:0(?:0\d\d(?:\d{2})?|[1-9]\d{4})|[13-9]\d{5}|2(?:[0-24-9]\d{4}|3\d(?:\d{3})?))|9(?:[0-46-9]\d{5}|5\d{3,5}))')
|
||||
->setExampleNumber('1012345678')
|
||||
->setPossibleLengthLocalOnly([5, 6])
|
||||
->setPossibleLength([7, 8, 9, 10, 11]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{5,6})')
|
||||
->setFormat('$1')
|
||||
->setLeadingDigitsPattern(['1(?:00|2[13])|9[56]', '1(?:00|2(?:1|39))|9[56]', '1(?:00|2(?:1|395))|9[56]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{5,6})')
|
||||
->setFormat('$1')
|
||||
->setLeadingDigitsPattern(['1(?:0|23)|781|[1-9]12', '1(?:0|23)|7812|[1-9]123', '1(?:0|23(?:[0-8]|9[0-46-9]))|78123|[1-9]123'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{5,6})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern([
|
||||
'(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]',
|
||||
'(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\d|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1',
|
||||
'10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\d|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12',
|
||||
'10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\d|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123',
|
||||
'10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\d|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern([
|
||||
'[1-9]',
|
||||
'1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])',
|
||||
'1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|[3-9]',
|
||||
'1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|1[03]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9]|78|94)|(?:3(?:[157]\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\d|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-9]|1(?:[013-9]|2[0-24-9]))',
|
||||
'1(?:0(?:[02-8]|1(?:[013-9]|2[0-24-9])|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[13-9]|2[0-24-9])|9[0-47-9])|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|1[03]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:0(?:[0-689]|7[0-79])|1[01459]|2[0-489]|[46]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9]|78|94)|(?:3(?:[157]\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\d|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-9]|1(?:[013-9]|2[0-24-9]))',
|
||||
])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['16[08]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{5,6})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern([
|
||||
'3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]',
|
||||
'(?:3(?:[157]\d|35|49|9[1-68])|4(?:[17]\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\d|4[13]|5[1-5]))[19]',
|
||||
'85[23](?:10|95)|(?:3(?:[157]\d|35|49|9[1-68])|4(?:[17]\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\d|4[13]|5[1-5]))(?:10|9[56])',
|
||||
'85[23](?:100|95)|(?:3(?:[157]\d|35|49|9[1-68])|4(?:[17]\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\d|4[13]|5[1-5]))(?:100|9[56])',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern([
|
||||
'[1-9]',
|
||||
'1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[0-8]|9[0-47-9])|6)|[3-9]',
|
||||
'1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|26|3(?:[0268]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23][0-8])|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:33|85[23]9)[0-46-9]|(?:2[0-57-9]|3(?:[157]\d|35|49|9[1-68])|4(?:[17]\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])',
|
||||
'1(?:0[02-8]|[1-9])|2(?:[0-57-9][0-8]|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:10|2[0-57-9])9[0-47-9]|(?:101|58|85[23]10)[1-9]|(?:3(?:[157]\d|35|49|9[1-68])|4(?:[17]\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])',
|
||||
])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['(?:4|80)0'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['10|2(?:[02-57-9]|1[1-9])', '10|2(?:[02-57-9]|1[1-9])', '10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern([
|
||||
'3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{7,8})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['9'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['80'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[3-578]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1[3-9]'])
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[12]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:(?:10|21)8|8)00\d{7}')
|
||||
->setExampleNumber('8001234567')
|
||||
->setPossibleLength([10, 12]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('10(?:10\d{4}|96\d{3,4})|400\d{7}|950\d{7,8}|(?:2[0-57-9]|3(?:[157]\d|35|49|9[1-68])|4(?:[17]\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\d|4[13]|5[1-5]))96\d{3,4}')
|
||||
->setExampleNumber('4001234567')
|
||||
->setPossibleLengthLocalOnly([5, 6])
|
||||
->setPossibleLength([7, 8, 9, 10, 11]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:(?:10|21)8|[48])00\d{7}|950\d{7,8}')
|
||||
->setPossibleLength([10, 11, 12]);
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{5,6})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern([
|
||||
'(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]',
|
||||
'(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\d|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1',
|
||||
'10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\d|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12',
|
||||
'10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\d|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123',
|
||||
'10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\d|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{5,6})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern([
|
||||
'3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]',
|
||||
'(?:3(?:[157]\d|35|49|9[1-68])|4(?:[17]\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\d|4[13]|5[1-5]))[19]',
|
||||
'85[23](?:10|95)|(?:3(?:[157]\d|35|49|9[1-68])|4(?:[17]\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\d|4[13]|5[1-5]))(?:10|9[56])',
|
||||
'85[23](?:100|95)|(?:3(?:[157]\d|35|49|9[1-68])|4(?:[17]\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\d|4[13]|5[1-5]))(?:100|9[56])',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['(?:4|80)0'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['10|2(?:[02-57-9]|1[1-9])', '10|2(?:[02-57-9]|1[1-9])', '10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern([
|
||||
'3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{7,8})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['9'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['80'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[3-578]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1[3-9]'])
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[12]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(true),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+103
-163
@@ -7,166 +7,106 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CO',
|
||||
'countryCode' => 57,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:46|60\\d\\d)\\d{6}|(?:1\\d|[39])\\d{9}',
|
||||
'posLength' => [
|
||||
8,
|
||||
10,
|
||||
11,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
4,
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '601055(?:[0-4]\\d|50)\\d\\d|6010(?:[0-4]\\d|5[0-4])\\d{4}|(?:46|60(?:[124-7][2-9]|8[1-9]))\\d{6}',
|
||||
'example' => '6012345678',
|
||||
'posLength' => [
|
||||
8,
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
4,
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '333301[0-5]\\d{3}|3333(?:00|2[5-9]|[3-9]\\d)\\d{4}|(?:3(?:24[1-9]|3(?:00|3[0-24-9]))|9101)\\d{6}|3(?:0[0-5]|1\\d|2[0-3]|5[01]|70)\\d{7}',
|
||||
'example' => '3211234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '1800\\d{7}',
|
||||
'example' => '18001234567',
|
||||
'posLength' => [
|
||||
11,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '(?:19(?:0[01]|4[78])|901)\\d{7}',
|
||||
'example' => '19001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
11,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00(?:4(?:[14]4|56)|[579])',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0([3579]|4(?:[14]4|56))?',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'46',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{7})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'6|90',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '($1)',
|
||||
'domesticCarrierCodeFormattingRule' => '0$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{7})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'3[0-357]|91',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '0$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{7})',
|
||||
'format' => '$1-$2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'46',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{7})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'6|90',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '($1)',
|
||||
'domesticCarrierCodeFormattingRule' => '0$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{7})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'3[0-357]|91',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '0$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{7})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CO extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CO';
|
||||
protected const COUNTRY_CODE = 57;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0([3579]|4(?:[14]4|56))?';
|
||||
protected ?string $internationalPrefix = '00(?:4(?:[14]4|56)|[579])';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:46|60\d\d)\d{6}|(?:1\d|[39])\d{9}')
|
||||
->setPossibleLengthLocalOnly([4, 7])
|
||||
->setPossibleLength([8, 10, 11]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('333301[0-5]\d{3}|3333(?:00|2[5-9]|[3-9]\d)\d{4}|(?:3(?:(?:0[0-5]|1\d|5[01]|70)\d|2(?:[0-3]\d|4[1-9])|3(?:00|3[0-24-9]))|9(?:101|408))\d{6}')
|
||||
->setExampleNumber('3211234567')
|
||||
->setPossibleLength([10]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:19(?:0[01]|4[78])|901)\d{7}')
|
||||
->setExampleNumber('19001234567')
|
||||
->setPossibleLength([10, 11]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('601055(?:[0-4]\d|50)\d\d|6010(?:[0-4]\d|5[0-4])\d{4}|(?:46|60(?:[18][1-9]|[24-7][2-9]))\d{6}')
|
||||
->setExampleNumber('6012345678')
|
||||
->setPossibleLengthLocalOnly([4, 7])
|
||||
->setPossibleLength([8, 10]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['46'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{7})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['6|90'])
|
||||
->setNationalPrefixFormattingRule('($1)')
|
||||
->setDomesticCarrierCodeFormattingRule('0$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{7})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['3[0-357]|9[14]'])
|
||||
->setDomesticCarrierCodeFormattingRule('0$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{7})')
|
||||
->setFormat('$1-$2-$3')
|
||||
->setLeadingDigitsPattern(['1'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1800\d{7}')
|
||||
->setExampleNumber('18001234567')
|
||||
->setPossibleLength([11]);
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['46'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{7})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['6|90'])
|
||||
->setNationalPrefixFormattingRule('($1)')
|
||||
->setDomesticCarrierCodeFormattingRule('0$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{7})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['3[0-357]|9[14]'])
|
||||
->setDomesticCarrierCodeFormattingRule('0$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{7})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1']),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+66
-98
@@ -7,101 +7,69 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CR',
|
||||
'countryCode' => 506,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}',
|
||||
'posLength' => [
|
||||
8,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '210[7-9]\\d{4}|2(?:[024-7]\\d|1[1-9])\\d{5}',
|
||||
'example' => '22123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:3005\\d|6500[01])\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\d{6}',
|
||||
'example' => '83123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{7}',
|
||||
'example' => '8001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '90[059]\\d{7}',
|
||||
'example' => '9001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '(?:210[0-6]|4\\d{3}|5100)\\d{4}',
|
||||
'example' => '40001234',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefixForParsing' => '(19(?:0[0-2468]|1[09]|20|66|77|99))',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-7]|8[3-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1-$2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[89]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '$CC $1',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CR extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CR';
|
||||
protected const COUNTRY_CODE = 506;
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '(19(?:0[0-2468]|1[09]|20|66|77|99))';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:8\d|90)\d{8}|(?:[24-8]\d{3}|3005)\d{4}')
|
||||
->setPossibleLength([8, 10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:3005\d|6500[01])\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\d{6}')
|
||||
->setExampleNumber('83123456')
|
||||
->setPossibleLength([8]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('90[059]\d{7}')
|
||||
->setExampleNumber('9001234567')
|
||||
->setPossibleLength([10]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('210[7-9]\d{4}|2(?:[024-7]\d|1[1-9])\d{5}')
|
||||
->setExampleNumber('22123456')
|
||||
->setPossibleLength([8]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[2-7]|8[3-9]'])
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1-$2-$3')
|
||||
->setLeadingDigitsPattern(['[89]'])
|
||||
->setDomesticCarrierCodeFormattingRule('$CC $1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{7}')
|
||||
->setExampleNumber('8001234567')
|
||||
->setPossibleLength([10]);
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:210[0-6]|4\d{3}|5100)\d{4}')
|
||||
->setExampleNumber('40001234')
|
||||
->setPossibleLength([8]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+77
-122
@@ -7,125 +7,80 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CU',
|
||||
'countryCode' => 53,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}',
|
||||
'posLength' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
4,
|
||||
5,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:3[23]|4[89])\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\d)\\d{6}|(?:2[1-4]|4[1257]|7\\d)\\d{5,6}',
|
||||
'example' => '71234567',
|
||||
'posLengthLocal' => [
|
||||
4,
|
||||
5,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:5\\d|6[2-4])\\d{6}',
|
||||
'example' => '51234567',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{7}',
|
||||
'example' => '8001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '807\\d{7}',
|
||||
'example' => '8071234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '119',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{4,6})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2[1-4]|[34]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '(0$1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{6,7})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'7',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '(0$1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{7})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[56]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{7})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'8',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CU extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CU';
|
||||
protected const COUNTRY_CODE = 53;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '119';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[2-7]|8\d\d)\d{7}|[2-47]\d{6}|[34]\d{5}')
|
||||
->setPossibleLengthLocalOnly([4, 5])
|
||||
->setPossibleLength([6, 7, 8, 10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:5\d|6[2-4])\d{6}')
|
||||
->setExampleNumber('51234567')
|
||||
->setPossibleLength([8]);
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:3[23]|4[89])\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\d)\d{6}|(?:2[1-4]|4[1257]|7\d)\d{5,6}')
|
||||
->setExampleNumber('71234567')
|
||||
->setPossibleLengthLocalOnly([4, 5]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{4,6})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['2[1-4]|[34]'])
|
||||
->setNationalPrefixFormattingRule('(0$1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{6,7})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['7'])
|
||||
->setNationalPrefixFormattingRule('(0$1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{7})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[56]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{7})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['8'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{7}')
|
||||
->setExampleNumber('8001234567')
|
||||
->setPossibleLength([10]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('807\d{7}')
|
||||
->setExampleNumber('8071234567')
|
||||
->setPossibleLength([10]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+51
-73
@@ -7,76 +7,54 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CV',
|
||||
'countryCode' => 238,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[2-59]\\d\\d|800)\\d{4}',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}',
|
||||
'example' => '2211234',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:36|5[1-389]|9\\d)\\d{5}',
|
||||
'example' => '9911234',
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{4}',
|
||||
'example' => '8001234',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '(?:3[3-5]|4[356])\\d{5}',
|
||||
'example' => '3401234',
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-589]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CV extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CV';
|
||||
protected const COUNTRY_CODE = 238;
|
||||
|
||||
protected ?string $internationalPrefix = '0';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[2-59]\d\d|800)\d{4}')
|
||||
->setPossibleLength([7]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:36|5[1-389]|9\d)\d{5}')
|
||||
->setExampleNumber('9911234');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\d|7[1-3]|8[1-5])\d{4}')
|
||||
->setExampleNumber('2211234');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[2-589]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{4}')
|
||||
->setExampleNumber('8001234');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:3[3-5]|4[356])\d{5}')
|
||||
->setExampleNumber('3401234');
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+60
-91
@@ -7,94 +7,63 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CW',
|
||||
'countryCode' => 599,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '9(?:4(?:3[0-5]|4[14]|6\\d)|50\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\d|7[01]|8[57-9]))\\d{4}',
|
||||
'example' => '94351234',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '953[01]\\d{4}|9(?:5[12467]|6[5-9])\\d{5}',
|
||||
'example' => '95181234',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '60[0-2]\\d{4}',
|
||||
'example' => '6001234',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'pattern' => '955\\d{5}',
|
||||
'example' => '95581234',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[3467]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9[4-8]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mainCountryForCode' => true,
|
||||
'leadingDigits' => '[69]',
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CW extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CW';
|
||||
protected const COUNTRY_CODE = 599;
|
||||
protected const LEADING_DIGITS = '[69]';
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mainCountryForCode = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[34]1|60|(?:7|9\d)\d)\d{5}')
|
||||
->setPossibleLength([7, 8]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('953[01]\d{4}|9(?:5[12467]|6[5-9])\d{5}')
|
||||
->setExampleNumber('95181234');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('9(?:4(?:3[0-5]|4[14]|6\d)|50\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\d|7[01]|8[57-9]))\d{4}')
|
||||
->setExampleNumber('94351234');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[3467]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['9[4-8]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('60[0-2]\d{4}')
|
||||
->setExampleNumber('6001234')
|
||||
->setPossibleLength([7]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('955\d{5}')
|
||||
->setExampleNumber('95581234')
|
||||
->setPossibleLength([8]);
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+58
-95
@@ -7,98 +7,61 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CX',
|
||||
'countryCode' => 61,
|
||||
'generalDesc' => [
|
||||
'pattern' => '1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}',
|
||||
'posLength' => [
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}',
|
||||
'example' => '891641234',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}',
|
||||
'example' => '412345678',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '180(?:0\\d{3}|2)\\d{3}',
|
||||
'example' => '1800123456',
|
||||
'posLength' => [
|
||||
7,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '190[0-26]\\d{6}',
|
||||
'example' => '1900123456',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}',
|
||||
'example' => '1300123456',
|
||||
'posLength' => [
|
||||
6,
|
||||
8,
|
||||
10,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}',
|
||||
'example' => '147101234',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011',
|
||||
'preferredInternationalPrefix' => '0011',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '([59]\\d{7})$|0',
|
||||
'nationalPrefixTransformRule' => '8$1',
|
||||
'numberFormat' => [],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CX extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CX';
|
||||
protected const COUNTRY_CODE = 61;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '([59]\d{7})$|0';
|
||||
protected ?string $internationalPrefix = '001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011';
|
||||
protected ?string $preferredInternationalPrefix = '0011';
|
||||
protected ?string $nationalPrefixTransformRule = '8$1';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1(?:[0-79]\d{8}(?:\d{2})?|8[0-24-9]\d{7})|[148]\d{8}|1\d{5,7}')
|
||||
->setPossibleLength([6, 7, 8, 9, 10, 12]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('4(?:79[01]|83[0-389]|94[0-478])\d{5}|4(?:[0-36]\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-37-9])\d{6}')
|
||||
->setExampleNumber('412345678')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('190[0-26]\d{6}')
|
||||
->setExampleNumber('1900123456')
|
||||
->setPossibleLength([10]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\d|7(?:0[01]|1[0-2])|958))\d{3}')
|
||||
->setExampleNumber('891641234')
|
||||
->setPossibleLengthLocalOnly([8])
|
||||
->setPossibleLength([9]);
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('180(?:0\d{3}|2)\d{3}')
|
||||
->setExampleNumber('1800123456')
|
||||
->setPossibleLength([7, 10]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('13(?:00\d{6}(?:\d{2})?|45[0-4]\d{3})|13\d{4}')
|
||||
->setExampleNumber('1300123456')
|
||||
->setPossibleLength([6, 8, 10, 12]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('14(?:5(?:1[0458]|[23][458])|71\d)\d{4}')
|
||||
->setExampleNumber('147101234')
|
||||
->setPossibleLength([9]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+58
-71
@@ -7,74 +7,61 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CY',
|
||||
'countryCode' => 357,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[279]\\d|[58]0)\\d{6}',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '2[2-6]\\d{6}',
|
||||
'example' => '22345678',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '9(?:10|[4-79]\\d)\\d{5}',
|
||||
'example' => '96123456',
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{5}',
|
||||
'example' => '80001234',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '90[09]\\d{5}',
|
||||
'example' => '90012345',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '80[1-9]\\d{5}',
|
||||
'example' => '80112345',
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '700\\d{5}',
|
||||
'example' => '70012345',
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '(?:50|77)\\d{6}',
|
||||
'example' => '77123456',
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{6})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[257-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CY extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CY';
|
||||
protected const COUNTRY_CODE = 357;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[279]\d|[58]0)\d{6}')
|
||||
->setPossibleLength([8]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('9(?:10|[4-79]\d)\d{5}')
|
||||
->setExampleNumber('96123456');
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('90[09]\d{5}')
|
||||
->setExampleNumber('90012345');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2[2-6]\d{6}')
|
||||
->setExampleNumber('22345678');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{6})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[257-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{5}')
|
||||
->setExampleNumber('80001234');
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('80[1-9]\d{5}')
|
||||
->setExampleNumber('80112345');
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('700\d{5}')
|
||||
->setExampleNumber('70012345');
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:50|77)\d{6}')
|
||||
->setExampleNumber('77123456');
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+85
-123
@@ -7,126 +7,88 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'CZ',
|
||||
'countryCode' => 420,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}',
|
||||
'posLength' => [
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:2\\d|3[1257-9]|4[16-9]|5[13-9])\\d{7}',
|
||||
'example' => '212345678',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:60[1-8]\\d|7(?:0(?:[2-5]\\d|60)|19[0-2]|[2379]\\d\\d))\\d{5}',
|
||||
'example' => '601123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{6}',
|
||||
'example' => '800123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '9(?:0[05689]|76)\\d{6}',
|
||||
'example' => '900123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '8[134]\\d{7}',
|
||||
'example' => '811234567',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '70[01]\\d{6}',
|
||||
'example' => '700123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '9[17]0\\d{6}',
|
||||
'example' => '910123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '9(?:5\\d|7[2-4])\\d{6}',
|
||||
'example' => '972123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'pattern' => '9(?:3\\d{9}|6\\d{7,10})',
|
||||
'example' => '93123456789',
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-8]|9[015-7]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'96',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_CZ extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'CZ';
|
||||
protected const COUNTRY_CODE = 420;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[2-578]\d|60)\d{7}|9\d{8,11}')
|
||||
->setPossibleLength([9, 10, 11, 12]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:60[1-8]\d|7(?:0(?:[2-5]\d|60)|19[0-4]|[2379]\d\d))\d{5}')
|
||||
->setExampleNumber('601123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('9(?:0[05689]|76)\d{6}')
|
||||
->setExampleNumber('900123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2\d|3[1257-9]|4[16-9]|5[13-9])\d{7}')
|
||||
->setExampleNumber('212345678')
|
||||
->setPossibleLength([9]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[2-8]|9[015-7]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['96'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['9'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['9'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{6}')
|
||||
->setExampleNumber('800123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8[134]\d{7}')
|
||||
->setExampleNumber('811234567')
|
||||
->setPossibleLength([9]);
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('70[01]\d{6}')
|
||||
->setExampleNumber('700123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('9[17]0\d{6}')
|
||||
->setExampleNumber('910123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('9(?:5\d|7[2-4])\d{6}')
|
||||
->setExampleNumber('972123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->voicemail = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('9(?:3\d{9}|6\d{7,10})')
|
||||
->setExampleNumber('93123456789');
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+184
-317
@@ -7,320 +7,187 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'DE',
|
||||
'countryCode' => 49,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}',
|
||||
'posLength' => [
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
2,
|
||||
3,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '32\\d{9,11}|49[1-6]\\d{10}|322\\d{6}|49[0-7]\\d{3,9}|(?:[34]0|[68]9)\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\d|[589][0-7]|6[0-8]|7[0-467]))\\d{3,12}',
|
||||
'example' => '30123456',
|
||||
'posLength' => [
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '1(?:(?:5(?:[0-25-9]\\d\\d|310)|76\\d\\d)\\d{6}|6[023]\\d{7,8})|17\\d{8}',
|
||||
'example' => '15123456789',
|
||||
'posLength' => [
|
||||
10,
|
||||
11,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{7,12}',
|
||||
'example' => '8001234567890',
|
||||
'posLength' => [
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '(?:137[7-9]|900(?:[135]|9\\d))\\d{6}',
|
||||
'example' => '9001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
11,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '180\\d{5,11}|13(?:7[1-6]\\d\\d|8)\\d{4}',
|
||||
'example' => '18012345',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '700\\d{8}',
|
||||
'example' => '70012345678',
|
||||
'posLength' => [
|
||||
11,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'pattern' => '16(?:4\\d{1,10}|[89]\\d{1,11})',
|
||||
'example' => '16412345',
|
||||
'posLength' => [
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'pattern' => '18(?:1\\d{5,11}|[2-9]\\d{8})',
|
||||
'example' => '18500123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'pattern' => '1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\d{7,8}|15(?:(?:[03-68]00|113)\\d|2\\d55|7\\d99|9\\d33)\\d{7}',
|
||||
'example' => '177991234567',
|
||||
'posLength' => [
|
||||
12,
|
||||
13,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3,13})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'3[02]|40|[68]9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3,12})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1',
|
||||
'2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{2,11})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]',
|
||||
'[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'138',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{5})(\\d{2,10})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'3',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{5,11})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'181',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d)(\\d{4,10})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1(?:3|80)|9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{7,8})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1[67]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{7,12})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'8',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{5})(\\d{6})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'185',
|
||||
'1850',
|
||||
'18500',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'7',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{7})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'18[68]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{7})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'15[1279]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{5})(\\d{6})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'15[03568]',
|
||||
'15(?:[0568]|31)',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{8})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'18',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{7,8})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1(?:6[023]|7)',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{2})(\\d{7})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'15[279]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{8})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'15',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_DE extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'DE';
|
||||
protected const COUNTRY_CODE = 49;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[2579]\d{5,14}|49(?:[34]0|69|8\d)\d\d?|49(?:37|49|60|7[089]|9\d)\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\d{1,8}|(?:1|[368]\d|4[0-8])\d{3,13}|49(?:[015]\d|2[13]|31|[46][1-8])\d{1,9}')
|
||||
->setPossibleLengthLocalOnly([2, 3])
|
||||
->setPossibleLength([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('15310\d{6}|1(?:5[0-25-9]\d|7[013-5])\d{7}|1(?:6[023]|7[26-9])\d{7,8}')
|
||||
->setExampleNumber('15123456789')
|
||||
->setPossibleLength([10, 11]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:137[7-9]|900(?:[135]|9\d))\d{6}')
|
||||
->setExampleNumber('9001234567')
|
||||
->setPossibleLength([10, 11]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('32\d{9,11}|49[1-6]\d{10}|322\d{6}|49[0-7]\d{3,9}|(?:[34]0|[68]9)\d{3,13}|(?:2(?:0[1-689]|[1-3569]\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\d|[589][0-7]|6[0-8]|7[0-467]))\d{3,12}')
|
||||
->setExampleNumber('30123456')
|
||||
->setPossibleLengthLocalOnly([2, 3, 4])
|
||||
->setPossibleLength([5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3,13})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['3[02]|40|[68]9'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3,12})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern([
|
||||
'2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1',
|
||||
'2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{2,11})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern([
|
||||
'[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]',
|
||||
'[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]',
|
||||
])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['138'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{5})(\d{2,10})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['3'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{5,11})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['181'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d)(\d{4,10})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1(?:3|80)|9'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{7,8})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['1[67]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{7,12})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['8'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{5})(\d{6})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['185', '1850', '18500'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['7'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{7})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['18[68]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{7})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['15[1279]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{5})(\d{6})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['15[03568]', '15(?:[0568]|31)'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{8})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['18'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{7,8})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1(?:6[023]|7)'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{2})(\d{7})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['15[279]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{8})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['15'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{7,12}')
|
||||
->setExampleNumber('8001234567890')
|
||||
->setPossibleLength([10, 11, 12, 13, 14, 15]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('180\d{5,11}|13(?:7[1-6]\d\d|8)\d{4}')
|
||||
->setExampleNumber('18012345')
|
||||
->setPossibleLength([7, 8, 9, 10, 11, 12, 13, 14]);
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('700\d{8}')
|
||||
->setExampleNumber('70012345678')
|
||||
->setPossibleLength([11]);
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('16(?:4\d{1,10}|[89]\d{1,11})')
|
||||
->setExampleNumber('16412345')
|
||||
->setPossibleLength([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]);
|
||||
$this->uan = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('18(?:1\d{5,11}|[2-9]\d{8})')
|
||||
->setExampleNumber('18500123456')
|
||||
->setPossibleLength([8, 9, 10, 11, 12, 13, 14]);
|
||||
$this->voicemail = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\d{7,8}|15(?:(?:[03-68]00|113)\d|2\d55|7\d99|9\d33)\d{7}')
|
||||
->setExampleNumber('177991234567')
|
||||
->setPossibleLength([12, 13]);
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+47
-75
@@ -7,78 +7,50 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'DJ',
|
||||
'countryCode' => 253,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:2\\d|77)\\d{6}',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '2(?:1[2-5]|7[45])\\d{5}',
|
||||
'example' => '21360003',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '77\\d{6}',
|
||||
'example' => '77831001',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[27]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_DJ extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'DJ';
|
||||
protected const COUNTRY_CODE = 253;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2\d|77)\d{6}')
|
||||
->setPossibleLength([8]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('77\d{6}')
|
||||
->setExampleNumber('77831001');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('2(?:1[2-5]|7[45])\d{5}')
|
||||
->setExampleNumber('21360003');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[27]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+52
-74
@@ -7,77 +7,55 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'DK',
|
||||
'countryCode' => 45,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[2-9]\\d{7}',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:2(?:[0-59][1-9]|[6-8]\\d)|3(?:[0-3][1-9]|4[13]|5[1-58]|6[1347-9]|7\\d|8[1-8]|9[1-79])|4(?:[0-25][1-9]|[34][2-9]|6[13-579]|7[13579]|8[1-47]|9[127])|5(?:[0-36][1-9]|4[146-9]|5[3-57-9]|7[568]|8[1-358]|9[1-69])|6(?:[0135][1-9]|2[1-68]|4[2-8]|6[1689]|[78]\\d|9[15689])|7(?:[0-69][1-9]|7[3-9]|8[147])|8(?:[16-9][1-9]|2[1-58])|9(?:[1-47-9][1-9]|6\\d))\\d{5}',
|
||||
'example' => '32123456',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:2[6-8]|37|6[78]|96)\\d{6}|(?:2[0-59]|3[0-689]|[457]\\d|6[0-69]|8[126-9]|9[1-47-9])[1-9]\\d{5}',
|
||||
'example' => '34412345',
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '80\\d{6}',
|
||||
'example' => '80123456',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '90\\d{6}',
|
||||
'example' => '90123456',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-9]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_DK extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'DK';
|
||||
protected const COUNTRY_CODE = 45;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[2-9]\d{7}')
|
||||
->setPossibleLength([8]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2[6-8]|37|6[78]|96)\d{6}|(?:2[0-59]|3[0-689]|[457]\d|6[0-69]|8[126-9]|9[1-47-9])[1-9]\d{5}')
|
||||
->setExampleNumber('34412345');
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('90\d{6}')
|
||||
->setExampleNumber('90123456');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:2(?:[0-59][1-9]|[6-8]\d)|3(?:[0-3][1-9]|4[13]|5[1-58]|6[1347-9]|7\d|8[1-8]|9[1-79])|4(?:[0-25][1-9]|[34][2-9]|6[13-579]|7[13579]|8[1-47]|9[127])|5(?:[0-36][1-9]|4[146-9]|5[3-57-9]|7[568]|8[1-358]|9[1-69])|6(?:[0135][1-9]|2[1-68]|4[2-8]|6[1689]|[78]\d|9[15689])|7(?:[0-69][1-9]|7[3-9]|8[147])|8(?:[16-9][1-9]|2[1-58])|9(?:[1-47-9][1-9]|6\d))\d{5}')
|
||||
->setExampleNumber('32123456');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[2-9]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('80\d{6}')
|
||||
->setExampleNumber('80123456');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+53
-76
@@ -7,79 +7,56 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'DM',
|
||||
'countryCode' => 1,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[58]\\d\\d|767|900)\\d{7}',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}',
|
||||
'example' => '7674201234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}',
|
||||
'example' => '7672251234',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '8(?:00|33|44|55|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '8002123456',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900[2-9]\\d{6}',
|
||||
'example' => '9002123456',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '5002345678',
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '011',
|
||||
'nationalPrefix' => '1',
|
||||
'nationalPrefixForParsing' => '([2-7]\\d{6})$|1',
|
||||
'nationalPrefixTransformRule' => '767$1',
|
||||
'numberFormat' => [],
|
||||
'leadingDigits' => '767',
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_DM extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'DM';
|
||||
protected const COUNTRY_CODE = 1;
|
||||
protected const LEADING_DIGITS = '767';
|
||||
protected const NATIONAL_PREFIX = '1';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '([2-7]\d{6})$|1';
|
||||
protected ?string $internationalPrefix = '011';
|
||||
protected ?string $nationalPrefixTransformRule = '767$1';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[58]\d\d|767|900)\d{7}')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\d{4}')
|
||||
->setExampleNumber('7672251234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900[2-9]\d{6}')
|
||||
->setExampleNumber('9002123456');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\d{4}')
|
||||
->setExampleNumber('7674201234')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8(?:00|33|44|55|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('8002123456');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('52(?:3(?:[2-46-9][02-9]\d|5(?:[02-46-9]\d|5[0-46-9]))|4(?:[2-478][02-9]\d|5(?:[034]\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\d)|9(?:[05-9]\d|2[0-5]|49)))\d{4}|52[34][2-9]1[02-9]\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('5002345678');
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+52
-75
@@ -7,78 +7,55 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'DO',
|
||||
'countryCode' => 1,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[58]\\d\\d|900)\\d{7}',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '8(?:[04]9[2-9]\\d\\d|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d\\d|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\d{4}',
|
||||
'example' => '8092345678',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '8[024]9[2-9]\\d{6}',
|
||||
'example' => '8092345678',
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '8(?:00(?:14|[2-9]\\d)|(?:33|44|55|66|77|88)[2-9]\\d)\\d{5}',
|
||||
'example' => '8002123456',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900[2-9]\\d{6}',
|
||||
'example' => '9002123456',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}',
|
||||
'example' => '5002345678',
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '011',
|
||||
'nationalPrefix' => '1',
|
||||
'nationalPrefixForParsing' => '1',
|
||||
'numberFormat' => [],
|
||||
'leadingDigits' => '8001|8[024]9',
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_DO extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'DO';
|
||||
protected const COUNTRY_CODE = 1;
|
||||
protected const LEADING_DIGITS = '8001|8[024]9';
|
||||
protected const NATIONAL_PREFIX = '1';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '1';
|
||||
protected ?string $internationalPrefix = '011';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[58]\d\d|900)\d{7}')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8[024]9[2-9]\d{6}')
|
||||
->setExampleNumber('8092345678')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900[2-9]\d{6}')
|
||||
->setExampleNumber('9002123456');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8(?:[04]9[2-9]\d\d|29(?:2(?:[0-59]\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\d|4[7-9])|[45]\d\d|6(?:[0-27-9]\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\d{4}')
|
||||
->setExampleNumber('8092345678')
|
||||
->setPossibleLengthLocalOnly([7]);
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800(?:14|[2-9]\d)\d{5}|8[024]9[01]\d{6}|8(?:33|44|55|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('8002123456');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('52(?:3(?:[2-46-9][02-9]\d|5(?:[02-46-9]\d|5[0-46-9]))|4(?:[2-478][02-9]\d|5(?:[034]\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\d)|9(?:[05-9]\d|2[0-5]|49)))\d{4}|52[34][2-9]1[02-9]\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\d{6}')
|
||||
->setExampleNumber('5002345678');
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+75
-107
@@ -7,110 +7,78 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'DZ',
|
||||
'countryCode' => 213,
|
||||
'generalDesc' => [
|
||||
'pattern' => '(?:[1-4]|[5-79]\\d|80)\\d{7}',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '9619\\d{5}|(?:1\\d|2[013-79]|3[0-8]|4[013-689])\\d{6}',
|
||||
'example' => '12345678',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:5(?:4[0-29]|5\\d|6[0-3])|6(?:[569]\\d|7[0-6])|7[7-9]\\d)\\d{6}',
|
||||
'example' => '551234567',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{6}',
|
||||
'example' => '800123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '80[3-689]1\\d{5}',
|
||||
'example' => '808123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'pattern' => '80[12]1\\d{5}',
|
||||
'example' => '801123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '98[23]\\d{6}',
|
||||
'example' => '983123456',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[1-4]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{2})(\\d{2})(\\d{2})',
|
||||
'format' => '$1 $2 $3 $4',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[5-8]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_DZ extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'DZ';
|
||||
protected const COUNTRY_CODE = 213;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:[1-4]|[5-79]\d|80)\d{7}')
|
||||
->setPossibleLength([8, 9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:5(?:4[0-29]|5\d|6[0-3])|6(?:[569]\d|7[0-6])|7[7-9]\d)\d{6}')
|
||||
->setExampleNumber('551234567')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('80[3-689]1\d{5}')
|
||||
->setExampleNumber('808123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('9619\d{5}|(?:1\d|2[013-79]|3[0-8]|4[013-689])\d{6}')
|
||||
->setExampleNumber('12345678');
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[1-4]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['9'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{2})(\d{2})(\d{2})')
|
||||
->setFormat('$1 $2 $3 $4')
|
||||
->setLeadingDigitsPattern(['[5-8]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{6}')
|
||||
->setExampleNumber('800123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->sharedCost = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('80[12]1\d{5}')
|
||||
->setExampleNumber('801123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('98[23]\d{6}')
|
||||
->setExampleNumber('983123456')
|
||||
->setPossibleLength([9]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+94
-152
@@ -7,155 +7,97 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'EC',
|
||||
'countryCode' => 593,
|
||||
'generalDesc' => [
|
||||
'pattern' => '1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '[2-7][2-7]\\d{6}',
|
||||
'example' => '22123456',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '964[0-2]\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\d)\\d{6}',
|
||||
'example' => '991234567',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '1800\\d{7}|1[78]00\\d{6}',
|
||||
'example' => '18001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
11,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '[2-7]890\\d{4}',
|
||||
'example' => '28901234',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1-$2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-7]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-7]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '(0$1)',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3})(\\d{3,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'intlNumberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{4})',
|
||||
'format' => '$1-$2-$3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[2-7]',
|
||||
],
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'9',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3})(\\d{3,4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_EC extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'EC';
|
||||
protected const COUNTRY_CODE = 593;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1\d{9,10}|(?:[2-7]|9\d)\d{7}')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([8, 9, 10, 11]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('964[0-2]\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\d)\d{6}')
|
||||
->setExampleNumber('991234567')
|
||||
->setPossibleLength([9]);
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[2-7][2-7]\d{6}')
|
||||
->setExampleNumber('22123456')
|
||||
->setPossibleLengthLocalOnly([7])
|
||||
->setPossibleLength([8]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1-$2')
|
||||
->setLeadingDigitsPattern(['[2-7]'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2-$3')
|
||||
->setLeadingDigitsPattern(['[2-7]'])
|
||||
->setNationalPrefixFormattingRule('(0$1)')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['9'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3})(\d{3,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1800\d{7}|1[78]00\d{6}')
|
||||
->setExampleNumber('18001234567')
|
||||
->setPossibleLength([10, 11]);
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[2-7]890\d{4}')
|
||||
->setExampleNumber('28901234')
|
||||
->setPossibleLength([8]);
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
$this->intlNumberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{4})')
|
||||
->setFormat('$1-$2-$3')
|
||||
->setLeadingDigitsPattern(['[2-7]']),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['9'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3})(\d{3,4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['1'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+78
-119
@@ -7,122 +7,81 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'EE',
|
||||
'countryCode' => 372,
|
||||
'generalDesc' => [
|
||||
'pattern' => '8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
10,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}',
|
||||
'example' => '3212345',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:5\\d{5}|8(?:1(?:0(?:0(?:00|[178]\\d)|[3-9]\\d\\d)|(?:1(?:0[2-6]|1\\d)|(?:2[0-59]|[3-79]\\d)\\d)\\d)|2(?:0(?:0(?:00|4\\d)|(?:19|[2-7]\\d)\\d)|(?:(?:[124-69]\\d|3[5-9])\\d|7(?:[0-79]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}',
|
||||
'example' => '51234567',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}',
|
||||
'example' => '80012345',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '(?:40\\d\\d|900)\\d{4}',
|
||||
'example' => '9001234',
|
||||
'posLength' => [
|
||||
7,
|
||||
8,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'pattern' => '70[0-2]\\d{5}',
|
||||
'example' => '70012345',
|
||||
'posLength' => [
|
||||
8,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'pattern' => '800[2-9]\\d{3}',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88',
|
||||
'[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3,4})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[45]|8(?:00|[1-49])',
|
||||
'[45]|8(?:00[1-9]|[1-49])',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{2})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'7',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{4})(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'8',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_EE extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'EE';
|
||||
protected const COUNTRY_CODE = 372;
|
||||
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('8\d{9}|[4578]\d{7}|(?:[3-8]\d|90)\d{5}')
|
||||
->setPossibleLength([7, 8, 10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:5\d{5}|8(?:1(?:0(?:0(?:00|[178]\d)|[3-9]\d\d)|(?:1(?:0[2-6]|1\d)|(?:2[0-59]|[3-79]\d)\d)\d)|2(?:0(?:0(?:00|4\d)|(?:19|[2-7]\d)\d)|(?:(?:[124-69]\d|3[5-9])\d|7(?:[0-79]\d|8[13-9])|8(?:[2-6]\d|7[01]))\d)|[349]\d{4}))\d\d|5(?:(?:[02]\d|5[0-478])\d|1(?:[0-8]\d|95)|6(?:4[0-4]|5[1-589]))\d{3}')
|
||||
->setExampleNumber('51234567')
|
||||
->setPossibleLength([7, 8]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:40\d\d|900)\d{4}')
|
||||
->setExampleNumber('9001234')
|
||||
->setPossibleLength([7, 8]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:3[23589]|4[3-8]|6\d|7[1-9]|88)\d{5}')
|
||||
->setExampleNumber('3212345')
|
||||
->setPossibleLength([7]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern([
|
||||
'[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88',
|
||||
'[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88',
|
||||
])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3,4})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[45]|8(?:00|[1-49])', '[45]|8(?:00[1-9]|[1-49])'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{2})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['7'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{4})(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['8'])
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800(?:(?:0\d\d|1)\d|[2-9])\d{3}')
|
||||
->setExampleNumber('80012345');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('70[0-2]\d{5}')
|
||||
->setExampleNumber('70012345')
|
||||
->setPossibleLength([8]);
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800[2-9]\d{3}')
|
||||
->setPossibleLength([7]);
|
||||
}
|
||||
}
|
||||
|
||||
+79
-126
@@ -7,129 +7,82 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'EG',
|
||||
'countryCode' => 20,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
6,
|
||||
7,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '13[23]\\d{6}|(?:15|57)\\d{6,7}|(?:2\\d|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\d{7}',
|
||||
'example' => '234567890',
|
||||
'posLength' => [
|
||||
8,
|
||||
9,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
6,
|
||||
7,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '1[0-25]\\d{8}',
|
||||
'example' => '1001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '800\\d{7}',
|
||||
'example' => '8001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '900\\d{7}',
|
||||
'example' => '9001234567',
|
||||
'posLength' => [
|
||||
10,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{7,8})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[23]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{6,7})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1[35]|[4-6]|8[2468]|9[235-7]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{3})(\\d{3})(\\d{4})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[89]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
[
|
||||
'pattern' => '(\\d{2})(\\d{8})',
|
||||
'format' => '$1 $2',
|
||||
'leadingDigitsPatterns' => [
|
||||
'1',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
'mobileNumberPortableRegion' => true,
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_EG extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'EG';
|
||||
protected const COUNTRY_CODE = 20;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
protected bool $mobileNumberPortableRegion = true;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[189]\d{8,9}|[24-6]\d{8}|[135]\d{7}')
|
||||
->setPossibleLengthLocalOnly([6, 7])
|
||||
->setPossibleLength([8, 9, 10]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('1[0-25]\d{8}')
|
||||
->setExampleNumber('1001234567')
|
||||
->setPossibleLength([10]);
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('900\d{7}')
|
||||
->setExampleNumber('9001234567')
|
||||
->setPossibleLength([10]);
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('13[23]\d{6}|(?:15|57)\d{6,7}|(?:2\d|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\d{7}')
|
||||
->setExampleNumber('234567890')
|
||||
->setPossibleLengthLocalOnly([6, 7])
|
||||
->setPossibleLength([8, 9]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{7,8})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['[23]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{6,7})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['1[35]|[4-6]|8[2468]|9[235-7]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{3})(\d{3})(\d{4})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[89]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d{2})(\d{8})')
|
||||
->setFormat('$1 $2')
|
||||
->setLeadingDigitsPattern(['1'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('800\d{7}')
|
||||
->setExampleNumber('8001234567')
|
||||
->setPossibleLength([10]);
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+48
-65
@@ -7,68 +7,51 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'EH',
|
||||
'countryCode' => 212,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[5-8]\\d{8}',
|
||||
'posLength' => [
|
||||
9,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '528[89]\\d{5}',
|
||||
'example' => '528812345',
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-467]|5[0-3]|8[0-5]))\\d{6}',
|
||||
'example' => '650123456',
|
||||
],
|
||||
'tollFree' => [
|
||||
'pattern' => '80[0-7]\\d{6}',
|
||||
'example' => '801234567',
|
||||
],
|
||||
'premiumRate' => [
|
||||
'pattern' => '89\\d{7}',
|
||||
'example' => '891234567',
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'pattern' => '(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}',
|
||||
'example' => '592401234',
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [],
|
||||
'leadingDigits' => '528[89]',
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_EH extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'EH';
|
||||
protected const COUNTRY_CODE = 212;
|
||||
protected const LEADING_DIGITS = '528[89]';
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[5-8]\d{8}')
|
||||
->setPossibleLength([9]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:6(?:[0-79]\d|8[0-247-9])|7(?:[0167]\d|2[0-8]|5[0-5]|8[0-7]))\d{6}')
|
||||
->setExampleNumber('650123456');
|
||||
$this->premiumRate = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('89\d{7}')
|
||||
->setExampleNumber('891234567');
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('528[89]\d{5}')
|
||||
->setExampleNumber('528812345');
|
||||
$this->tollFree = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('80[0-7]\d{6}')
|
||||
->setExampleNumber('801234567');
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:592(?:4[0-2]|93)|80[89]\d\d)\d{4}')
|
||||
->setExampleNumber('592401234');
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
+52
-83
@@ -7,86 +7,55 @@
|
||||
* @internal
|
||||
*/
|
||||
|
||||
return [
|
||||
'id' => 'ER',
|
||||
'countryCode' => 291,
|
||||
'generalDesc' => [
|
||||
'pattern' => '[178]\\d{6}',
|
||||
'posLength' => [
|
||||
7,
|
||||
],
|
||||
'posLengthLocal' => [
|
||||
6,
|
||||
],
|
||||
],
|
||||
'fixedLine' => [
|
||||
'pattern' => '(?:1(?:1[12568]|[24]0|55|6[146])|8\\d\\d)\\d{4}',
|
||||
'example' => '8370362',
|
||||
'posLengthLocal' => [
|
||||
6,
|
||||
],
|
||||
],
|
||||
'mobile' => [
|
||||
'pattern' => '(?:17[1-3]|7\\d\\d)\\d{4}',
|
||||
'example' => '7123456',
|
||||
],
|
||||
'tollFree' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'premiumRate' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'sharedCost' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'personalNumber' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voip' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'pager' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'uan' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'voicemail' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'noInternationalDialling' => [
|
||||
'posLength' => [
|
||||
-1,
|
||||
],
|
||||
],
|
||||
'internationalPrefix' => '00',
|
||||
'nationalPrefix' => '0',
|
||||
'nationalPrefixForParsing' => '0',
|
||||
'numberFormat' => [
|
||||
[
|
||||
'pattern' => '(\\d)(\\d{3})(\\d{3})',
|
||||
'format' => '$1 $2 $3',
|
||||
'leadingDigitsPatterns' => [
|
||||
'[178]',
|
||||
],
|
||||
'nationalPrefixFormattingRule' => '0$1',
|
||||
'domesticCarrierCodeFormattingRule' => '',
|
||||
],
|
||||
],
|
||||
];
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace libphonenumber\data;
|
||||
|
||||
use libphonenumber\NumberFormat;
|
||||
use libphonenumber\PhoneMetadata;
|
||||
use libphonenumber\PhoneNumberDesc;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class PhoneNumberMetadata_ER extends PhoneMetadata
|
||||
{
|
||||
protected const ID = 'ER';
|
||||
protected const COUNTRY_CODE = 291;
|
||||
protected const NATIONAL_PREFIX = '0';
|
||||
|
||||
protected ?string $nationalPrefixForParsing = '0';
|
||||
protected ?string $internationalPrefix = '00';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->generalDesc = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('[178]\d{6}')
|
||||
->setPossibleLengthLocalOnly([6])
|
||||
->setPossibleLength([7]);
|
||||
$this->mobile = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:17[1-3]|7\d\d)\d{4}')
|
||||
->setExampleNumber('7123456');
|
||||
$this->premiumRate = PhoneNumberDesc::empty();
|
||||
$this->fixedLine = (new PhoneNumberDesc())
|
||||
->setNationalNumberPattern('(?:1(?:1[12568]|[24]0|55|6[146])|8\d\d)\d{4}')
|
||||
->setExampleNumber('8370362')
|
||||
->setPossibleLengthLocalOnly([6]);
|
||||
$this->numberFormat = [
|
||||
(new NumberFormat())
|
||||
->setPattern('(\d)(\d{3})(\d{3})')
|
||||
->setFormat('$1 $2 $3')
|
||||
->setLeadingDigitsPattern(['[178]'])
|
||||
->setNationalPrefixFormattingRule('0$1')
|
||||
->setNationalPrefixOptionalWhenFormatting(false),
|
||||
];
|
||||
$this->tollFree = PhoneNumberDesc::empty();
|
||||
$this->sharedCost = PhoneNumberDesc::empty();
|
||||
$this->personalNumber = PhoneNumberDesc::empty();
|
||||
$this->voip = PhoneNumberDesc::empty();
|
||||
$this->pager = PhoneNumberDesc::empty();
|
||||
$this->uan = PhoneNumberDesc::empty();
|
||||
$this->voicemail = PhoneNumberDesc::empty();
|
||||
$this->noInternationalDialling = PhoneNumberDesc::empty();
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user