@yext/phonenumber-util 0.2.7 โ 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +9 -9
- package/src/__tests__/base.test.js +10 -1
- package/src/base.js +2 -2
- package/src/phoneCodes.js +2 -0
- package/src/phoneFormats.js +231 -178
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yext/phonenumber-util",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.9",
|
|
4
4
|
"author": "bajohnson@hearsaycorp.com",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"description": "Utility for extracting and validating phone numbers",
|
|
@@ -17,24 +17,24 @@
|
|
|
17
17
|
"url": "git+https://github.com/hearsaycorp/phonenumber-util.git"
|
|
18
18
|
},
|
|
19
19
|
"scripts": {
|
|
20
|
-
"lint": "eslint
|
|
21
|
-
"format": "prettier --write
|
|
20
|
+
"lint": "eslint ./src/*.js ./src/**/*.js",
|
|
21
|
+
"format": "prettier --write ./src/*.js ./src/**/*.js",
|
|
22
22
|
"test": "TZ=America/Los_Angeles vitest",
|
|
23
23
|
"build": "node -e \"console.log('No build script for vanilla JS')\"",
|
|
24
24
|
"prepare": "husky",
|
|
25
25
|
"make-badges": "istanbul-badges-readme"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@eslint/js": "^9.
|
|
29
|
-
"@vitest/coverage-v8": "^3.
|
|
30
|
-
"eslint": "^9.
|
|
28
|
+
"@eslint/js": "^9.27.0",
|
|
29
|
+
"@vitest/coverage-v8": "^3.1.4",
|
|
30
|
+
"eslint": "^9.27.0",
|
|
31
31
|
"generate-license-file": "4.0.0",
|
|
32
|
-
"globals": "^16.
|
|
32
|
+
"globals": "^16.1.0",
|
|
33
33
|
"husky": "^9.1.7",
|
|
34
34
|
"istanbul-badges-readme": "^1.9.0",
|
|
35
|
-
"lint-staged": "^
|
|
35
|
+
"lint-staged": "^16.0.0",
|
|
36
36
|
"prettier": "^3.5.3",
|
|
37
|
-
"vitest": "^3.
|
|
37
|
+
"vitest": "^3.1.4"
|
|
38
38
|
},
|
|
39
39
|
"eslintConfig": {},
|
|
40
40
|
"lint-staged": {
|
|
@@ -130,6 +130,8 @@ describe('Phone number formatting', () => {
|
|
|
130
130
|
expect(getPhoneParts('+33 7 56 78 90 12').formattedNumber).toBe(
|
|
131
131
|
'+33 7 56 78 90 12',
|
|
132
132
|
);
|
|
133
|
+
// US number with +1 prefix
|
|
134
|
+
expect(getPhoneParts('+17033354245').localNumber).toBe('3354245');
|
|
133
135
|
});
|
|
134
136
|
});
|
|
135
137
|
|
|
@@ -170,6 +172,12 @@ describe('Creation of phone links for href', () => {
|
|
|
170
172
|
localNumber: '3496200',
|
|
171
173
|
rawNumber: '(310) 349-6200',
|
|
172
174
|
},
|
|
175
|
+
usIntl: {
|
|
176
|
+
regionCode: '1',
|
|
177
|
+
areaCode: '310',
|
|
178
|
+
localNumber: '3496200',
|
|
179
|
+
rawNumber: '+1 (310) 349-6200',
|
|
180
|
+
},
|
|
173
181
|
intl: {
|
|
174
182
|
regionCode: '49',
|
|
175
183
|
localNumber: '1712345678',
|
|
@@ -182,6 +190,7 @@ describe('Creation of phone links for href', () => {
|
|
|
182
190
|
expect(formatPhoneNumberLink(testNumbers.usAreaCode)).toBe(
|
|
183
191
|
'tel:+13103496200',
|
|
184
192
|
);
|
|
193
|
+
expect(formatPhoneNumberLink(testNumbers.usIntl)).toBe('tel:+13103496200');
|
|
185
194
|
expect(formatPhoneNumberLink(testNumbers.intl)).toBe('tel:+491712345678');
|
|
186
195
|
});
|
|
187
196
|
});
|
|
@@ -239,7 +248,7 @@ describe('Phone number pretty formatting', () => {
|
|
|
239
248
|
expect(formatPhoneNumber(testNumbers.nullCase)).toBe(null);
|
|
240
249
|
expect(formatPhoneNumber(testNumbers.us)).toBe('(310) 349-6200');
|
|
241
250
|
expect(formatPhoneNumber(testNumbers.colombia)).toBe('+57 321 123 4567');
|
|
242
|
-
expect(formatPhoneNumber(testNumbers.germanyAlt)).toBe('+49
|
|
251
|
+
expect(formatPhoneNumber(testNumbers.germanyAlt)).toBe('+49 170 8765432');
|
|
243
252
|
// This looks like a Norwegian number, but doesn't match a known format. In this case, we'll return a sanitized generic format.
|
|
244
253
|
expect(formatPhoneNumber(testNumbers.norwayUnexpected)).toBe(
|
|
245
254
|
'+47174087654',
|
package/src/base.js
CHANGED
|
@@ -162,8 +162,8 @@ export const getPhoneParts = (phoneNumber) => {
|
|
|
162
162
|
strippedPhoneNumber.startsWith('+1')
|
|
163
163
|
) {
|
|
164
164
|
phoneParts.regionCode = '1';
|
|
165
|
-
phoneParts.
|
|
166
|
-
phoneParts.
|
|
165
|
+
phoneParts.areaCode = strippedPhoneNumber.slice(2, 5);
|
|
166
|
+
phoneParts.localNumber = strippedPhoneNumber.slice(5);
|
|
167
167
|
}
|
|
168
168
|
// Otherwise, an intl number which may have 1, 2 or 3 digit region
|
|
169
169
|
else if (
|
package/src/phoneCodes.js
CHANGED
|
@@ -656,6 +656,7 @@ export const REGION_CODES = {
|
|
|
656
656
|
54: { name: 'Argentina', code: 'AR', flag: '๐ฆ๐ท' },
|
|
657
657
|
374: { name: 'Armenia', code: 'AM', flag: '๐ฆ๐ฒ' },
|
|
658
658
|
297: { name: 'Aruba', code: 'AW', flag: '๐ฆ๐ผ' },
|
|
659
|
+
247: { name: 'Ascension Island', code: 'AC', flag: '๐ฆ๐จ' },
|
|
659
660
|
43: { name: 'Austria', code: 'AT', flag: '๐ฆ๐น' },
|
|
660
661
|
994: { name: 'Azerbaijan', code: 'AZ', flag: '๐ฆ๐ฟ' },
|
|
661
662
|
973: { name: 'Bahrain', code: 'BH', flag: '๐ง๐ญ' },
|
|
@@ -715,6 +716,7 @@ export const REGION_CODES = {
|
|
|
715
716
|
350: { name: 'Gibraltar', code: 'GI', flag: '๐ฌ๐ฎ' },
|
|
716
717
|
30: { name: 'Greece', code: 'GR', flag: '๐ฌ๐ท' },
|
|
717
718
|
299: { name: 'Greenland', code: 'GL', flag: '๐ฌ๐ฑ' },
|
|
719
|
+
473: { name: 'Grenada', code: 'GD', flag: '๐ฌ๐ฉ' },
|
|
718
720
|
502: { name: 'Guatemala', code: 'GT', flag: '๐ฌ๐น' },
|
|
719
721
|
224: { name: 'Guinea', code: 'GN', flag: '๐ฌ๐ณ' },
|
|
720
722
|
245: { name: 'Guinea-Bissau', code: 'GW', flag: '๐ฌ๐ผ' },
|
package/src/phoneFormats.js
CHANGED
|
@@ -1,214 +1,267 @@
|
|
|
1
1
|
// For each region, provide a pretty format. Some regions may have multiple formats, in which case an array can be used. Each "x" will be replaced with a digit when the number of digits matches the number of "x"s in the format.
|
|
2
2
|
// If no format is found with a correct matching length, a sanitized e164 is returned as a fall-back.
|
|
3
3
|
export const PHONE_FORMATS = {
|
|
4
|
-
1: '(xxx) xxx-xxxx', //
|
|
5
|
-
7: '+x xxx xxx-xx-xx', // Russia
|
|
6
|
-
20: '+xx
|
|
4
|
+
1: '(xxx) xxx-xxxx', // US, Canada, and NANP regions
|
|
5
|
+
7: '+x xxx xxx-xx-xx', // Russia, Kazakhstan
|
|
6
|
+
20: '+xx xxx xxx xxxx', // Egypt
|
|
7
7
|
27: '+xx xx xxx xxxx', // South Africa
|
|
8
8
|
30: '+xx xxx xxx xxxx', // Greece
|
|
9
|
-
31: '+xx xx
|
|
9
|
+
31: '+xx xx xxxxxxxx', // Netherlands
|
|
10
10
|
32: '+xx xxx xx xx xx', // Belgium
|
|
11
11
|
33: '+xx x xx xx xx xx', // France
|
|
12
|
-
34: '+xx xxx
|
|
13
|
-
36: '+xx
|
|
12
|
+
34: '+xx xxx xxx xxx', // Spain
|
|
13
|
+
36: '+xx xxx xxx xxx', // Hungary
|
|
14
14
|
39: '+xx xxx xxx xxxx', // Italy
|
|
15
|
-
40: '+xx xxx xxx
|
|
16
|
-
41: '+xx
|
|
17
|
-
43:
|
|
18
|
-
|
|
15
|
+
40: '+xx xxx xxx xxx', // Romania
|
|
16
|
+
41: '+xx xxx xxx xx xx', // Switzerland
|
|
17
|
+
43: [
|
|
18
|
+
'+xx xxxx xxx-xxx', // 10 digits (mobile)
|
|
19
|
+
'+xx xxxx xxx-xxxx', // 11 digits
|
|
20
|
+
], // Austria
|
|
21
|
+
44: [
|
|
22
|
+
'+xx xxxx xxxxxx', // 10 digits (landline)
|
|
23
|
+
'+xx xxxxx xxxxxx', // 11 digits (mobile)
|
|
24
|
+
], // United Kingdom
|
|
19
25
|
45: '+xx xx xx xx xx', // Denmark
|
|
20
|
-
46: '+xx xx
|
|
26
|
+
46: '+xx xx-xxx xx xx', // Sweden
|
|
21
27
|
47: '+xx xxx xx xxx', // Norway
|
|
22
28
|
48: '+xx xxx xxx xxx', // Poland
|
|
23
29
|
49: [
|
|
24
|
-
'+xx
|
|
25
|
-
'+xx
|
|
26
|
-
'+xx xx xxxxxxxx',
|
|
27
|
-
'+xx xxx xxxxxxxx',
|
|
30
|
+
'+xx xxx xxxxxxx', // 10 digits (standard)
|
|
31
|
+
'+xx xxxx xxxxxxxx', // 11 digits (mobile)
|
|
28
32
|
], // Germany
|
|
29
33
|
51: '+xx xxx xxx xxx', // Peru
|
|
30
|
-
52:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
52: [
|
|
35
|
+
'+xx xxx xxx xxxx', // 10 digits (standard)
|
|
36
|
+
'+xx xx xx xxxx xxxx', // 12 digits (with area code)
|
|
37
|
+
], // Mexico
|
|
38
|
+
53: '+xx x xxx xxxx', // Cuba
|
|
39
|
+
54: [
|
|
40
|
+
'+xx xxx-xxx-xxxx', // 10 digits (mobile and Buenos Aires)
|
|
41
|
+
'+xx xxxx-xx-xxxx', // 11 digits (mobile with 9 prefix)
|
|
42
|
+
], // Argentina
|
|
43
|
+
55: [
|
|
44
|
+
'+xx xx xxxx-xxxx', // 10 digits (standard)
|
|
45
|
+
'+xx xx xxxxx-xxxx', // 11 digits (mobile)
|
|
46
|
+
], // Brazil
|
|
34
47
|
56: '+xx x xxxx xxxx', // Chile
|
|
35
48
|
57: '+xx xxx xxx xxxx', // Colombia
|
|
36
|
-
58: '+xx xxx
|
|
37
|
-
60: '+xx xx
|
|
38
|
-
61:
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
49
|
+
58: '+xx xxx-xxxxxxx', // Venezuela
|
|
50
|
+
60: '+xx xx-xxx xxxx', // Malaysia
|
|
51
|
+
61: [
|
|
52
|
+
'+xx xx xxxx xxxx', // 10 digits (standard)
|
|
53
|
+
'+xx xxx xxx xxx', // 9 digits (some services)
|
|
54
|
+
], // Australia
|
|
55
|
+
62: [
|
|
56
|
+
'+xx xxx-xxx-xxx', // 9 digits (landline)
|
|
57
|
+
'+xx xxx-xxx-xxxx', // 10-12 digits (mobile)
|
|
58
|
+
], // Indonesia
|
|
59
|
+
63: [
|
|
60
|
+
'+xx xxxx xxxx', // 8 digits (landline)
|
|
61
|
+
'+xx xxxx xxx xxxx', // 11 digits (mobile)
|
|
62
|
+
], // Philippines
|
|
63
|
+
64: '+xx xx xxx xxxx', // New Zealand
|
|
42
64
|
65: '+xx xxxx xxxx', // Singapore
|
|
43
|
-
66:
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
65
|
+
66: [
|
|
66
|
+
'+xx xx xxx xxxx', // 9 digits (landline)
|
|
67
|
+
'+xx xxx-xxx-xxxx', // 10 digits (mobile)
|
|
68
|
+
], // Thailand
|
|
69
|
+
81: [
|
|
70
|
+
'+xx xx-xxxx-xxxx', // 10 digits (landline)
|
|
71
|
+
'+xx xxx-xxxx-xxxx', // 11 digits (mobile)
|
|
72
|
+
], // Japan
|
|
73
|
+
82: '+xx xx-xxxx-xxxx', // South Korea
|
|
74
|
+
84: [
|
|
75
|
+
'+xx xx xx xxx xx', // 10 digits (standard)
|
|
76
|
+
'+xx xxx xxxx xxxx', // 11 digits (mobile)
|
|
77
|
+
], // Vietnam
|
|
78
|
+
86: [
|
|
79
|
+
'+xx xxx xxxx xxxx', // 11 digits (mobile)
|
|
80
|
+
'+xx xxxx xxxx xxxx', // 12 digits (special services)
|
|
81
|
+
], // China
|
|
82
|
+
90: '+xx xxx xxx xx xx', // Turkey
|
|
83
|
+
91: [
|
|
84
|
+
'+xx xxxxx xxxxx', // 10 digits (standard)
|
|
85
|
+
'+xx xxxxx xxxxxx', // 11 digits (with area code)
|
|
86
|
+
], // India
|
|
50
87
|
92: '+xx xxx xxx xxxx', // Pakistan
|
|
51
88
|
93: '+xx xx xxx xxxx', // Afghanistan
|
|
52
89
|
94: '+xx xx xxx xxxx', // Sri Lanka
|
|
53
|
-
95: '+xx
|
|
90
|
+
95: '+xx xx xxx xxxx', // Myanmar
|
|
54
91
|
98: '+xx xxx xxx xxxx', // Iran
|
|
55
|
-
211: '+xxx xxx xxxx', // South Sudan
|
|
56
|
-
212: '+xxx
|
|
57
|
-
213: '+xxx xx xx xx', // Algeria
|
|
58
|
-
216: '+xxx xx xxx', // Tunisia
|
|
59
|
-
218: '+xxx xx xxx
|
|
92
|
+
211: '+xxx xx xxx xxxx', // South Sudan
|
|
93
|
+
212: '+xxx xxx xx xx xx', // Morocco
|
|
94
|
+
213: '+xxx xx xx xx xx', // Algeria
|
|
95
|
+
216: '+xxx xx xxx xxx', // Tunisia
|
|
96
|
+
218: '+xxx xx xxx xxxx', // Libya
|
|
60
97
|
220: '+xxx xxx xxxx', // Gambia
|
|
61
|
-
221: '+xxx
|
|
62
|
-
222: '+xxx
|
|
63
|
-
223: '+xxx
|
|
98
|
+
221: '+xxx xx xxx xx xx', // Senegal
|
|
99
|
+
222: '+xxx xxxx xxxx', // Mauritania
|
|
100
|
+
223: '+xxx xxxx xxxx', // Mali
|
|
64
101
|
224: '+xxx xxx xxx xxx', // Guinea
|
|
65
|
-
225: '+xxx xx xx xx
|
|
102
|
+
225: '+xxx xx xx xx xxxx', // Cรดte d'Ivoire
|
|
66
103
|
226: '+xxx xx xx xx xx', // Burkina Faso
|
|
67
104
|
227: '+xxx xx xx xx xx', // Niger
|
|
68
|
-
228: '+xxx
|
|
105
|
+
228: '+xxx xx xxx xxx', // Togo
|
|
69
106
|
229: '+xxx xx xx xx xx', // Benin
|
|
70
107
|
230: '+xxx xxxx xxxx', // Mauritius
|
|
71
|
-
231: '+xxx xx
|
|
72
|
-
232: '+xxx xxx
|
|
73
|
-
233: '+xxx xxx xxxx', // Ghana
|
|
74
|
-
234: '+xxx xxx
|
|
108
|
+
231: '+xxx xx xxx xxxx', // Liberia
|
|
109
|
+
232: '+xxx xx xxx xxx', // Sierra Leone
|
|
110
|
+
233: '+xxx xxx xxx xxxx', // Ghana
|
|
111
|
+
234: '+xxx xxx xxx xxxx', // Nigeria
|
|
75
112
|
235: '+xxx xx xx xx xx', // Chad
|
|
76
113
|
236: '+xxx xx xx xx xx', // Central African Republic
|
|
77
|
-
237: '+xxx
|
|
78
|
-
238: '+xxx
|
|
79
|
-
239: '+xxx
|
|
80
|
-
240: '+xxx xxx
|
|
81
|
-
241: '+xxx
|
|
82
|
-
242: '+xxx xxx xxxx
|
|
83
|
-
243: '+xxx xxx
|
|
84
|
-
244: '+xxx xxx
|
|
85
|
-
245: '+xxx xxx xxxx
|
|
114
|
+
237: '+xxx xxx xx xx xx', // Cameroon
|
|
115
|
+
238: '+xxx xxx xxxx', // Cape Verde
|
|
116
|
+
239: '+xxx xx xxxxx', // Sรฃo Tomรฉ and Prรญncipe
|
|
117
|
+
240: '+xxx xxx xxx xxx', // Equatorial Guinea
|
|
118
|
+
241: '+xxx x xx xx xx', // Gabon
|
|
119
|
+
242: '+xxx xx xxx xxxx', // Republic of the Congo
|
|
120
|
+
243: '+xxx xxx xxx xxx', // Democratic Republic of the Congo
|
|
121
|
+
244: '+xxx xxx xxx xxx', // Angola
|
|
122
|
+
245: '+xxx xxx xxxx', // Guinea-Bissau
|
|
86
123
|
246: '+xxx xxx xxxx', // British Indian Ocean Territory
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
124
|
+
247: '+xxx xxxxx', // Ascension Island
|
|
125
|
+
248: '+xxx x xx xx xx', // Seychelles
|
|
126
|
+
249: '+xxx xx xxx xxxx', // Sudan
|
|
127
|
+
250: '+xxx xxx xxx xxx', // Rwanda
|
|
128
|
+
251: '+xxx xx xxx xxxx', // Ethiopia
|
|
129
|
+
252: '+xxx xx xxx xxx', // Somalia
|
|
130
|
+
253: '+xxx xx xx xx xx', // Djibouti
|
|
131
|
+
254: '+xxx xxx xxx xxx', // Kenya
|
|
132
|
+
255: '+xxx xxx xxx xxx', // Tanzania
|
|
133
|
+
256: '+xxx xxx xxx xxx', // Uganda
|
|
134
|
+
257: '+xxx xx xx xxxx', // Burundi
|
|
135
|
+
258: '+xxx xx xxx xxxx', // Mozambique
|
|
136
|
+
260: '+xxx xx xxx xxxx', // Zambia
|
|
137
|
+
261: '+xxx xx xx xxx xx', // Madagascar
|
|
138
|
+
262: '+xxx xxx xx xx xx', // Rรฉunion, Mayotte
|
|
139
|
+
263: '+xxx xx xxx xxxx', // Zimbabwe
|
|
140
|
+
264: '+xxx xx xxx xxxx', // Namibia
|
|
141
|
+
265: '+xxx xxx xx xx xx', // Malawi
|
|
142
|
+
266: '+xxx xx xxx xxx', // Lesotho
|
|
143
|
+
267: '+xxx xx xxx xxx', // Botswana
|
|
144
|
+
268: '+xxx xxxx xxxx', // Eswatini
|
|
145
|
+
269: '+xxx xxx xx xx', // Comoros
|
|
146
|
+
290: '+xxx xxxx', // Saint Helena
|
|
147
|
+
291: '+xxx x xxx xxx', // Eritrea
|
|
148
|
+
295: '+xxx xxx xxxx', // San Marino
|
|
149
|
+
297: '+xxx xxx xxxx', // Aruba
|
|
110
150
|
298: '+xxx xxx xxx', // Faroe Islands
|
|
111
|
-
299: '+xxx
|
|
112
|
-
350: '+xxx
|
|
113
|
-
351: '+xxx xxx
|
|
114
|
-
352: '+xxx xxx
|
|
115
|
-
353:
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
151
|
+
299: '+xxx xx xx xx', // Greenland
|
|
152
|
+
350: '+xxx xxxx xxxx', // Gibraltar
|
|
153
|
+
351: '+xxx xxx xxx xxx', // Portugal
|
|
154
|
+
352: '+xxx xxx xxx xxx', // Luxembourg
|
|
155
|
+
353: [
|
|
156
|
+
'+xxx xxx xxx xxxx', // 10 digits (standard)
|
|
157
|
+
'+xxx xxx xxx xxxxx', // 11 digits (some services)
|
|
158
|
+
], // Ireland
|
|
159
|
+
354: '+xxx xxx xxxx', // Iceland
|
|
160
|
+
355: '+xxx xx xxx xxxx', // Albania
|
|
161
|
+
356: '+xxx xxxx xxxx', // Malta
|
|
162
|
+
357: '+xxx xx xxxxxx', // Cyprus
|
|
163
|
+
358: ['+xxx xxx xxx xxxx', '+xxx xx xxx xxxx'], // Finland
|
|
164
|
+
359: '+xxx xxx xxx xxx', // Bulgaria
|
|
165
|
+
370: '+xxx xxx xxxxx', // Lithuania
|
|
166
|
+
371: '+xxx xxxx xxxx', // Latvia
|
|
167
|
+
372: ['+xxx xxxx xxxx', '+xxx xxx xxxx'], // Estonia
|
|
168
|
+
373: '+xxx xxx xx xxx', // Moldova
|
|
169
|
+
374: '+xxx xx xxx xxx', // Armenia
|
|
170
|
+
375: '+xxx xx xxx-xx-xx', // Belarus
|
|
171
|
+
376: '+xxx xxx xxx', // Andorra
|
|
172
|
+
377: '+xxx xxxx xxx xxx', // Monaco
|
|
173
|
+
378: '+xxx xxx xx xx xx', // San Marino
|
|
174
|
+
379: '+xxx xx xxxxxx', // Vatican City
|
|
175
|
+
380: '+xxx xxx xxx xxxx', // Ukraine
|
|
176
|
+
381: '+xxx xx xxx xxxx', // Serbia
|
|
177
|
+
382: '+xxx xx xxx xxx', // Montenegro
|
|
178
|
+
383: '+xxx xx xxx xxx', // Kosovo
|
|
179
|
+
385: '+xxx xx xxx xxxx', // Croatia
|
|
180
|
+
386: '+xxx xx xxx xxx', // Slovenia
|
|
181
|
+
387: '+xxx xx xxx xxx', // Bosnia and Herzegovina
|
|
182
|
+
389: '+xxx xx xxx xxx', // North Macedonia
|
|
183
|
+
420: '+xxx xxx xxx xxx', // Czech Republic
|
|
184
|
+
421: '+xxx xxx xxx xxx', // Slovakia
|
|
185
|
+
423: '+xxx xxx xxx xx xx', // Liechtenstein
|
|
186
|
+
473: '+x xxx xxx xxxx', // Grenada
|
|
187
|
+
500: '+xxx xxxxx', // Falkland Islands
|
|
188
|
+
501: '+xxx xxx-xxxx', // Belize
|
|
189
|
+
502: '+xxx x xxx xxxx', // Guatemala
|
|
146
190
|
503: '+xxx xxxx xxxx', // El Salvador
|
|
147
|
-
504: '+xxx xxxx
|
|
191
|
+
504: '+xxx xxxx-xxxx', // Honduras
|
|
148
192
|
505: '+xxx xxxx xxxx', // Nicaragua
|
|
149
193
|
506: '+xxx xxxx xxxx', // Costa Rica
|
|
150
|
-
507: '+xxx xxxx
|
|
151
|
-
508: '+xxx
|
|
194
|
+
507: '+xxx xxxx-xxxx', // Panama
|
|
195
|
+
508: '+xxx xx xx xx', // Saint Pierre and Miquelon
|
|
152
196
|
509: '+xxx xxxx xxxx', // Haiti
|
|
153
|
-
590: '+xxx
|
|
154
|
-
591: '+xxx xxx xxxx
|
|
155
|
-
592: '+xxx
|
|
156
|
-
593: '+xxx xxx xxxx
|
|
157
|
-
594: '+xxx xxxx
|
|
158
|
-
595: '+xxx xxx
|
|
159
|
-
596: '+xxx
|
|
160
|
-
597: '+xxx xxxx
|
|
161
|
-
598: '+xxx xxx
|
|
162
|
-
599:
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
197
|
+
590: '+xxx (xxx) xxx-xxxx', // Guadeloupe, Saint Barthรฉlemy, Saint Martin
|
|
198
|
+
591: '+xxx x xxx xxxx', // Bolivia
|
|
199
|
+
592: '+xxx xxx xxxx', // Guyana
|
|
200
|
+
593: '+xxx xx xxx xxxx', // Ecuador
|
|
201
|
+
594: '+xxx xxxx xx xx xx', // French Guiana
|
|
202
|
+
595: '+xxx xxx xxx xxx', // Paraguay
|
|
203
|
+
596: '+xxx (xxx) xxx-xxxx', // Martinique
|
|
204
|
+
597: '+xxx xxx-xxxx', // Suriname
|
|
205
|
+
598: '+xxx x xxx xx xx', // Uruguay
|
|
206
|
+
599: [
|
|
207
|
+
'+xxx x xxx xxxx', // Netherlands Antilles format 1
|
|
208
|
+
'+xxx xxx xxxx', // Netherlands Antilles format 2
|
|
209
|
+
],
|
|
210
|
+
670: '+xxx xxxx xxxx', // Timor-Leste
|
|
211
|
+
672: [
|
|
212
|
+
'+xxx xxxxx', // Norfolk Island
|
|
213
|
+
'+xxx xx xxxx', // Australian External Territories
|
|
214
|
+
],
|
|
215
|
+
673: '+xxx xxx xxxx', // Brunei
|
|
216
|
+
674: '+xxx xxx xxxx', // Nauru
|
|
217
|
+
675: '+xxx xxx xxxx', // Papua New Guinea
|
|
218
|
+
676: '+xxx xxxxx', // Tonga
|
|
219
|
+
677: '+xxx xxxxxxx', // Solomon Islands
|
|
220
|
+
678: '+xxx xx xxxxx', // Vanuatu
|
|
221
|
+
679: '+xxx xxx xxxx', // Fiji
|
|
222
|
+
680: '+xxx xxx xxxx', // Palau
|
|
223
|
+
681: '+xxx xx xx xx', // Wallis and Futuna
|
|
224
|
+
682: '+xxx xx xxx', // Cook Islands
|
|
225
|
+
683: '+xxx xxxx', // Niue
|
|
226
|
+
685: '+xxx xxxxx', // Samoa
|
|
227
|
+
686: '+xxx xxxxx', // Kiribati
|
|
228
|
+
687: '+xxx xx.xx.xx', // New Caledonia
|
|
229
|
+
688: '+xxx xxxxx', // Tuvalu
|
|
230
|
+
689: '+xxx xx xx xx', // French Polynesia
|
|
231
|
+
690: '+xxx xxxx', // Tokelau
|
|
232
|
+
691: '+xxx xxx xxxx', // Micronesia
|
|
233
|
+
692: '+xxx xxx xxxx', // Marshall Islands
|
|
234
|
+
850: '+xxx xx xxx xxxx', // North Korea
|
|
235
|
+
852: '+xxx xxxx xxxx', // Hong Kong
|
|
236
|
+
853: '+xxx xxxx xxxx', // Macau
|
|
237
|
+
855: '+xxx xx xxx xxx', // Cambodia
|
|
238
|
+
856: '+xxx xx xx xxx xxx', // Laos
|
|
239
|
+
880: '+xxx xxxx-xxxxxx', // Bangladesh
|
|
240
|
+
886: '+xxx xxxx-xxx-xxx', // Taiwan
|
|
241
|
+
960: '+xxx xxx-xxxx', // Maldives
|
|
242
|
+
961: '+xxx xx xxx xxx', // Lebanon
|
|
243
|
+
962: '+xxx x xxxx xxxx', // Jordan
|
|
244
|
+
963: '+xxx xx xxxx xxx', // Syria
|
|
245
|
+
964: '+xxx xxxx xxx xxxx', // Iraq
|
|
246
|
+
965: '+xxx xxxx xxxx', // Kuwait
|
|
247
|
+
966: '+xxx xx xxx xxxx', // Saudi Arabia
|
|
248
|
+
967: '+xxx xxx xxx xxx', // Yemen
|
|
249
|
+
968: '+xxx xxxx xxxx', // Oman
|
|
250
|
+
970: '+xxx xxx xx xxxx', // Palestine
|
|
251
|
+
971: '+xxx xx xxx xxxx', // United Arab Emirates
|
|
252
|
+
972: [
|
|
253
|
+
'+xxx xx-xxx-xxxx', // 9 digits (standard)
|
|
254
|
+
'+xxx xxx-xxx-xxxx', // 10 digits (mobile)
|
|
255
|
+
], // Israel
|
|
256
|
+
973: '+xxx xxxx xxxx', // Bahrain
|
|
257
|
+
974: '+xxx xxxx xxxx', // Qatar
|
|
258
|
+
975: '+xxx x xxx xxxx', // Bhutan
|
|
259
|
+
976: '+xxx xxxx xxxx', // Mongolia
|
|
260
|
+
977: '+xxx xxx-xxxxxxx', // Nepal
|
|
261
|
+
992: ['+xxx xxx xx xxxx', '+xxx xxx xxx xxxx'], // Tajikistan
|
|
262
|
+
993: '+xxx xx xxxxxx', // Turkmenistan
|
|
263
|
+
994: '+xxx xx xxx xx xx', // Azerbaijan
|
|
264
|
+
995: '+xxx xxx xxx xxx', // Georgia
|
|
265
|
+
996: '+xxx xxx xxx xxx', // Kyrgyzstan
|
|
266
|
+
998: ['+xxx xx xxx xx xx', '+xxx xx xxxxxxx'], // Uzbekistan
|
|
214
267
|
};
|