global-phone-validator 1.0.1 → 1.1.1
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/README.md +180 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +72 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
# global-phone-validator
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A comprehensive Node.js + TypeScript package for validating phone numbers worldwide. Supports **all countries** with **country-specific validation rules** for 50+ major countries. Handles international formats (+CC), 0-prefixed, and plain digits. Includes mobile/landline detection for India and returns standardized E.164 format.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- ✅ **
|
|
7
|
+
- ✅ **True Global Validation**: Validates phone numbers for **all countries** with country-specific rules for 50+ major countries
|
|
8
|
+
- ✅ **Country-Specific Rules**: Accurate validation for US, UK, Germany, France, Australia, Brazil, China, Japan, India, and 40+ more countries
|
|
8
9
|
- ✅ **Multiple Formats**: Handles international format (+CC), 0-prefixed, and plain digit formats
|
|
9
10
|
- ✅ **India-Specific**: Mobile vs landline detection for Indian phone numbers
|
|
10
|
-
- ✅ **Standardized Output**: Returns E.164 format (+CCNNNNNNNNN)
|
|
11
|
+
- ✅ **Standardized Output**: Returns E.164 format (+CCNNNNNNNNN) with country information
|
|
11
12
|
- ✅ **TypeScript**: Fully typed with TypeScript definitions
|
|
12
13
|
- ✅ **Zero Dependencies**: No external dependencies required
|
|
14
|
+
- ✅ **ITU-T E.164 Compliant**: Follows international telecommunication standards
|
|
13
15
|
|
|
14
16
|
## Installation
|
|
15
17
|
|
|
@@ -19,15 +21,33 @@ npm install global-phone-validator
|
|
|
19
21
|
yarn add global-phone-validator
|
|
20
22
|
```
|
|
21
23
|
|
|
24
|
+
## Try It Online
|
|
25
|
+
|
|
26
|
+
Test the package directly in your browser with RunKit:
|
|
27
|
+
|
|
28
|
+
**[▶️ Try on RunKit](https://npm.runkit.com/global-phone-validator)**
|
|
29
|
+
|
|
30
|
+
Or use this code snippet:
|
|
31
|
+
|
|
32
|
+
```javascript
|
|
33
|
+
const { validatePhoneNumber } = require("global-phone-validator");
|
|
34
|
+
|
|
35
|
+
// Test various countries
|
|
36
|
+
validatePhoneNumber("+91 98765 43210"); // India
|
|
37
|
+
validatePhoneNumber("+1 555 123 4567"); // USA
|
|
38
|
+
validatePhoneNumber("+44 20 7946 0958"); // UK
|
|
39
|
+
validatePhoneNumber("+49 30 12345678"); // Germany
|
|
40
|
+
```
|
|
41
|
+
|
|
22
42
|
## Usage
|
|
23
43
|
|
|
24
44
|
### Basic Validation
|
|
25
45
|
|
|
26
46
|
```typescript
|
|
27
|
-
import { validatePhoneNumber } from
|
|
47
|
+
import { validatePhoneNumber } from "global-phone-validator";
|
|
28
48
|
|
|
29
49
|
// International format with country code
|
|
30
|
-
const result1 = validatePhoneNumber(
|
|
50
|
+
const result1 = validatePhoneNumber("+91 98765 43210");
|
|
31
51
|
console.log(result1);
|
|
32
52
|
// {
|
|
33
53
|
// isValid: true,
|
|
@@ -41,15 +61,15 @@ console.log(result1);
|
|
|
41
61
|
// }
|
|
42
62
|
|
|
43
63
|
// 0-prefixed format (India)
|
|
44
|
-
const result2 = validatePhoneNumber(
|
|
64
|
+
const result2 = validatePhoneNumber("09876543210");
|
|
45
65
|
console.log(result2.isValid); // true
|
|
46
66
|
|
|
47
67
|
// Plain digits with default country
|
|
48
|
-
const result3 = validatePhoneNumber(
|
|
68
|
+
const result3 = validatePhoneNumber("9876543210", "IN");
|
|
49
69
|
console.log(result3.isValid); // true
|
|
50
70
|
|
|
51
71
|
// US number
|
|
52
|
-
const result4 = validatePhoneNumber(
|
|
72
|
+
const result4 = validatePhoneNumber("+1 555 123 4567");
|
|
53
73
|
console.log(result4);
|
|
54
74
|
// {
|
|
55
75
|
// isValid: true,
|
|
@@ -65,28 +85,32 @@ console.log(result4);
|
|
|
65
85
|
|
|
66
86
|
```typescript
|
|
67
87
|
// Only accept mobile numbers
|
|
68
|
-
const result = validatePhoneNumber(
|
|
88
|
+
const result = validatePhoneNumber("9876543210", "IN", true);
|
|
69
89
|
console.log(result.isValid); // true (mobile number)
|
|
70
90
|
|
|
71
|
-
const result2 = validatePhoneNumber(
|
|
91
|
+
const result2 = validatePhoneNumber("0123456789", "IN", true);
|
|
72
92
|
console.log(result2.isValid); // false (landline number)
|
|
73
93
|
```
|
|
74
94
|
|
|
75
95
|
### Get Country Codes
|
|
76
96
|
|
|
77
97
|
```typescript
|
|
78
|
-
import {
|
|
98
|
+
import {
|
|
99
|
+
getAllCountryCodes,
|
|
100
|
+
getCountryDialCode,
|
|
101
|
+
getCountryCodeByDialCode,
|
|
102
|
+
} from "global-phone-validator";
|
|
79
103
|
|
|
80
104
|
// Get all country codes
|
|
81
105
|
const countries = getAllCountryCodes();
|
|
82
106
|
console.log(countries); // Array of all countries
|
|
83
107
|
|
|
84
108
|
// Get dial code for a country
|
|
85
|
-
const dialCode = getCountryDialCode(
|
|
109
|
+
const dialCode = getCountryDialCode("IN");
|
|
86
110
|
console.log(dialCode); // '91'
|
|
87
111
|
|
|
88
112
|
// Get country by dial code
|
|
89
|
-
const country = getCountryCodeByDialCode(
|
|
113
|
+
const country = getCountryCodeByDialCode("91");
|
|
90
114
|
console.log(country); // { name: 'India', dial_code: '+91', code: 'IN' }
|
|
91
115
|
```
|
|
92
116
|
|
|
@@ -97,6 +121,7 @@ console.log(country); // { name: 'India', dial_code: '+91', code: 'IN' }
|
|
|
97
121
|
Validates a phone number and returns detailed information.
|
|
98
122
|
|
|
99
123
|
**Parameters:**
|
|
124
|
+
|
|
100
125
|
- `input` (string): Phone number in various formats
|
|
101
126
|
- `defaultCountry` (string, optional): ISO country code (e.g., "IN", "US") used when country cannot be detected. Default: "IN"
|
|
102
127
|
- `mobileOnly` (boolean, optional): If true, only accepts mobile numbers (currently only for India). Default: false
|
|
@@ -106,13 +131,13 @@ Validates a phone number and returns detailed information.
|
|
|
106
131
|
```typescript
|
|
107
132
|
interface PhoneValidationResult {
|
|
108
133
|
isValid: boolean;
|
|
109
|
-
countryCode?: string;
|
|
110
|
-
nationalNumber?: string;
|
|
111
|
-
e164?: string;
|
|
112
|
-
isMobile?: boolean;
|
|
113
|
-
isFixedLine?: boolean;
|
|
114
|
-
country?: string;
|
|
115
|
-
countryName?: string;
|
|
134
|
+
countryCode?: string; // e.g., '91'
|
|
135
|
+
nationalNumber?: string; // e.g., '9876543210'
|
|
136
|
+
e164?: string; // e.g., '+919876543210'
|
|
137
|
+
isMobile?: boolean; // true if mobile (India only)
|
|
138
|
+
isFixedLine?: boolean; // true if landline (India only)
|
|
139
|
+
country?: string; // ISO country code, e.g., 'IN'
|
|
140
|
+
countryName?: string; // Full country name, e.g., 'India'
|
|
116
141
|
}
|
|
117
142
|
```
|
|
118
143
|
|
|
@@ -124,9 +149,9 @@ Returns an array of all supported countries.
|
|
|
124
149
|
|
|
125
150
|
```typescript
|
|
126
151
|
interface CountryCode {
|
|
127
|
-
name: string;
|
|
128
|
-
dial_code: string;
|
|
129
|
-
code: string;
|
|
152
|
+
name: string; // e.g., 'India'
|
|
153
|
+
dial_code: string; // e.g., '+91'
|
|
154
|
+
code: string; // e.g., 'IN'
|
|
130
155
|
}
|
|
131
156
|
```
|
|
132
157
|
|
|
@@ -135,6 +160,7 @@ interface CountryCode {
|
|
|
135
160
|
Gets the dial code for a country.
|
|
136
161
|
|
|
137
162
|
**Parameters:**
|
|
163
|
+
|
|
138
164
|
- `countryCode` (string): ISO country code (e.g., "IN")
|
|
139
165
|
|
|
140
166
|
**Returns:** `string | null` - The dial code without the + sign (e.g., "91")
|
|
@@ -144,6 +170,7 @@ Gets the dial code for a country.
|
|
|
144
170
|
Gets country information by dial code.
|
|
145
171
|
|
|
146
172
|
**Parameters:**
|
|
173
|
+
|
|
147
174
|
- `dialCode` (string): Dial code with or without + (e.g., "91" or "+91")
|
|
148
175
|
|
|
149
176
|
**Returns:** `CountryCode | null`
|
|
@@ -158,43 +185,139 @@ The package handles phone numbers in the following formats:
|
|
|
158
185
|
|
|
159
186
|
## Country-Specific Validation
|
|
160
187
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
-
|
|
188
|
+
The package includes **comprehensive validation rules** for **50+ major countries** with specific length and format requirements. Each country has its own validation pattern ensuring accurate phone number validation.
|
|
189
|
+
|
|
190
|
+
### Countries with Specific Validation Rules
|
|
191
|
+
|
|
192
|
+
#### Americas
|
|
193
|
+
|
|
194
|
+
- **United States/Canada (1)**: 10 digits
|
|
195
|
+
- **Brazil (55)**: 10-11 digits
|
|
196
|
+
- **Mexico (52)**: 10 digits
|
|
197
|
+
- **Argentina (54)**: 10 digits
|
|
198
|
+
- **Chile (56)**: 9 digits
|
|
199
|
+
- **Colombia (57)**: 10 digits
|
|
200
|
+
- **Venezuela (58)**: 10 digits
|
|
201
|
+
- **Peru (51)**: 9 digits
|
|
202
|
+
|
|
203
|
+
#### Europe
|
|
204
|
+
|
|
205
|
+
- **United Kingdom (44)**: 10-11 digits
|
|
206
|
+
- **Germany (49)**: 10-11 digits
|
|
207
|
+
- **France (33)**: 9 digits
|
|
208
|
+
- **Italy (39)**: 9-10 digits
|
|
209
|
+
- **Spain (34)**: 9 digits
|
|
210
|
+
- **Netherlands (31)**: 9 digits
|
|
211
|
+
- **Sweden (46)**: 9 digits
|
|
212
|
+
- **Norway (47)**: 8 digits
|
|
213
|
+
- **Poland (48)**: 9 digits
|
|
214
|
+
- **Russia (7)**: 10 digits
|
|
215
|
+
- **Switzerland (41)**: 9 digits
|
|
216
|
+
- **Belgium (32)**: 9 digits
|
|
217
|
+
- **Greece (30)**: 10 digits
|
|
218
|
+
- **Portugal (351)**: 9 digits
|
|
219
|
+
- **Ireland (353)**: 9 digits
|
|
220
|
+
- **Czech Republic (420)**: 9 digits
|
|
221
|
+
- **Ukraine (380)**: 9 digits
|
|
222
|
+
- **And more...**
|
|
223
|
+
|
|
224
|
+
#### Asia-Pacific
|
|
225
|
+
|
|
226
|
+
- **India (91)**: 10 digits (mobile: 6-9, landline: 0-5) - Mobile/landline detection
|
|
227
|
+
- **China (86)**: 11 digits
|
|
228
|
+
- **Japan (81)**: 10-11 digits
|
|
229
|
+
- **South Korea (82)**: 9-10 digits
|
|
230
|
+
- **Australia (61)**: 9 digits
|
|
231
|
+
- **Indonesia (62)**: 9-11 digits
|
|
232
|
+
- **Philippines (63)**: 10 digits
|
|
233
|
+
- **Thailand (66)**: 9 digits
|
|
234
|
+
- **Malaysia (60)**: 9-10 digits
|
|
235
|
+
- **Singapore (65)**: 8 digits
|
|
236
|
+
- **New Zealand (64)**: 8-10 digits
|
|
237
|
+
- **Vietnam (84)**: 9-10 digits
|
|
238
|
+
- **Pakistan (92)**: 10 digits
|
|
239
|
+
- **Turkey (90)**: 10 digits
|
|
240
|
+
- **UAE (971)**: 9 digits
|
|
241
|
+
- **Israel (972)**: 9 digits
|
|
242
|
+
- **Hong Kong (852)**: 8 digits
|
|
243
|
+
- **Taiwan (886)**: 9 digits
|
|
244
|
+
- **And more...**
|
|
245
|
+
|
|
246
|
+
#### Africa & Middle East
|
|
247
|
+
|
|
248
|
+
- **South Africa (27)**: 9 digits
|
|
249
|
+
- **Nigeria (234)**: 10 digits
|
|
250
|
+
- **Kenya (254)**: 9 digits
|
|
251
|
+
- **Egypt (20)**: 8-10 digits
|
|
252
|
+
- **Morocco (212)**: 9 digits
|
|
253
|
+
- **Qatar (974)**: 8 digits
|
|
254
|
+
- **And more...**
|
|
168
255
|
|
|
169
256
|
### Other Countries
|
|
170
|
-
|
|
257
|
+
|
|
258
|
+
- **General validation**: 4-15 digits (ITU-T E.164 standard)
|
|
259
|
+
- All countries from CountryCodes.json are supported
|
|
260
|
+
- Falls back to general validation for countries without specific rules
|
|
171
261
|
|
|
172
262
|
## Examples
|
|
173
263
|
|
|
174
264
|
```typescript
|
|
175
|
-
import { validatePhoneNumber } from
|
|
265
|
+
import { validatePhoneNumber } from "global-phone-validator";
|
|
176
266
|
|
|
177
267
|
// Valid Indian mobile number
|
|
178
|
-
validatePhoneNumber(
|
|
268
|
+
validatePhoneNumber("+91 98765 43210");
|
|
179
269
|
// { isValid: true, isMobile: true, e164: '+919876543210', ... }
|
|
180
270
|
|
|
181
271
|
// Valid Indian landline
|
|
182
|
-
validatePhoneNumber(
|
|
272
|
+
validatePhoneNumber("0123456789", "IN");
|
|
183
273
|
// { isValid: true, isFixedLine: true, ... }
|
|
184
274
|
|
|
185
275
|
// Invalid number
|
|
186
|
-
validatePhoneNumber(
|
|
276
|
+
validatePhoneNumber("12345");
|
|
187
277
|
// { isValid: false }
|
|
188
278
|
|
|
189
279
|
// US number
|
|
190
|
-
validatePhoneNumber(
|
|
280
|
+
validatePhoneNumber("+1 555 123 4567");
|
|
191
281
|
// { isValid: true, country: 'US', e164: '+15551234567', ... }
|
|
192
282
|
|
|
193
283
|
// UK number
|
|
194
|
-
validatePhoneNumber(
|
|
284
|
+
validatePhoneNumber("+44 20 7946 0958");
|
|
195
285
|
// { isValid: true, country: 'GB', e164: '+442079460958', ... }
|
|
286
|
+
|
|
287
|
+
// Germany number
|
|
288
|
+
validatePhoneNumber("+49 30 12345678");
|
|
289
|
+
// { isValid: true, country: 'DE', e164: '+493012345678', ... }
|
|
290
|
+
|
|
291
|
+
// France number
|
|
292
|
+
validatePhoneNumber("+33 1 23 45 67 89");
|
|
293
|
+
// { isValid: true, country: 'FR', e164: '+33123456789', ... }
|
|
294
|
+
|
|
295
|
+
// Australia number
|
|
296
|
+
validatePhoneNumber("+61 2 1234 5678");
|
|
297
|
+
// { isValid: true, country: 'AU', e164: '+61212345678', ... }
|
|
298
|
+
|
|
299
|
+
// Brazil number
|
|
300
|
+
validatePhoneNumber("+55 11 98765 4321");
|
|
301
|
+
// { isValid: true, country: 'BR', e164: '+5511987654321', ... }
|
|
302
|
+
|
|
303
|
+
// China number
|
|
304
|
+
validatePhoneNumber("+86 138 0013 8000");
|
|
305
|
+
// { isValid: true, country: 'CN', e164: '+8613800138000', ... }
|
|
306
|
+
|
|
307
|
+
// Japan number
|
|
308
|
+
validatePhoneNumber("+81 3 1234 5678");
|
|
309
|
+
// { isValid: true, country: 'JP', e164: '+81312345678', ... }
|
|
196
310
|
```
|
|
197
311
|
|
|
312
|
+
## Why Use This Package?
|
|
313
|
+
|
|
314
|
+
- **Accurate**: Country-specific validation rules ensure phone numbers are validated correctly
|
|
315
|
+
- **Comprehensive**: Supports all countries with specific rules for 50+ major countries
|
|
316
|
+
- **Lightweight**: Zero dependencies, small package size
|
|
317
|
+
- **Type-Safe**: Full TypeScript support with comprehensive type definitions
|
|
318
|
+
- **Flexible**: Handles multiple input formats (international, 0-prefixed, plain digits)
|
|
319
|
+
- **Standardized**: Returns E.164 format for consistent phone number representation
|
|
320
|
+
|
|
198
321
|
## Development
|
|
199
322
|
|
|
200
323
|
```bash
|
|
@@ -208,11 +331,29 @@ npm run build
|
|
|
208
331
|
npm test
|
|
209
332
|
```
|
|
210
333
|
|
|
334
|
+
## Contributing
|
|
335
|
+
|
|
336
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
337
|
+
|
|
338
|
+
### Adding Country Validation Rules
|
|
339
|
+
|
|
340
|
+
If you'd like to add or improve validation rules for specific countries, please:
|
|
341
|
+
|
|
342
|
+
1. Fork the repository
|
|
343
|
+
2. Add the validation rule to the `validationRules` object in `src/index.ts`
|
|
344
|
+
3. Update the README with the country information
|
|
345
|
+
4. Submit a Pull Request
|
|
346
|
+
|
|
211
347
|
## License
|
|
212
348
|
|
|
213
349
|
MIT
|
|
214
350
|
|
|
215
|
-
##
|
|
351
|
+
## Links
|
|
216
352
|
|
|
217
|
-
|
|
353
|
+
- **NPM Package**: [global-phone-validator](https://www.npmjs.com/package/global-phone-validator)
|
|
354
|
+
- **GitHub Repository**: [AVantala/global-phone-validator](https://github.com/AVantala/global-phone-validator)
|
|
355
|
+
- **Issues**: [Report a bug or request a feature](https://github.com/AVantala/global-phone-validator/issues)
|
|
356
|
+
|
|
357
|
+
## License
|
|
218
358
|
|
|
359
|
+
MIT
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAe,MAAM,SAAS,CAAC;AAW7D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,cAAc,GAAE,MAAa,EAC7B,UAAU,GAAE,OAAe,GAC1B,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAe,MAAM,SAAS,CAAC;AAW7D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,cAAc,GAAE,MAAa,EAC7B,UAAU,GAAE,OAAe,GAC1B,qBAAqB,CA2KvB;AAGD,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -69,21 +69,84 @@ function validatePhoneNumber(input, defaultCountry = "IN", mobileOnly = false) {
|
|
|
69
69
|
if (nationalNumber.length < 4 || nationalNumber.length > 15) {
|
|
70
70
|
return { isValid: false };
|
|
71
71
|
}
|
|
72
|
-
// Country-specific validation
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
// Country-specific validation rules
|
|
73
|
+
const validationRules = {
|
|
74
|
+
"1": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // US/Canada
|
|
75
|
+
"7": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // Russia/Kazakhstan
|
|
76
|
+
"20": { pattern: /^\d{8,10}$/, minLength: 8, maxLength: 10 }, // Egypt
|
|
77
|
+
"27": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // South Africa
|
|
78
|
+
"30": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // Greece
|
|
79
|
+
"31": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Netherlands
|
|
80
|
+
"32": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Belgium
|
|
81
|
+
"33": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // France
|
|
82
|
+
"34": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Spain
|
|
83
|
+
"36": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Hungary
|
|
84
|
+
"39": { pattern: /^\d{9,10}$/, minLength: 9, maxLength: 10 }, // Italy
|
|
85
|
+
"40": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Romania
|
|
86
|
+
"41": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Switzerland
|
|
87
|
+
"44": { pattern: /^\d{10,11}$/, minLength: 10, maxLength: 11 }, // UK
|
|
88
|
+
"45": { pattern: /^\d{8}$/, minLength: 8, maxLength: 8 }, // Denmark
|
|
89
|
+
"46": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Sweden
|
|
90
|
+
"47": { pattern: /^\d{8}$/, minLength: 8, maxLength: 8 }, // Norway
|
|
91
|
+
"48": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Poland
|
|
92
|
+
"49": { pattern: /^\d{10,11}$/, minLength: 10, maxLength: 11 }, // Germany
|
|
93
|
+
"51": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Peru
|
|
94
|
+
"52": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // Mexico
|
|
95
|
+
"53": { pattern: /^\d{8}$/, minLength: 8, maxLength: 8 }, // Cuba
|
|
96
|
+
"54": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // Argentina
|
|
97
|
+
"55": { pattern: /^\d{10,11}$/, minLength: 10, maxLength: 11 }, // Brazil
|
|
98
|
+
"56": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Chile
|
|
99
|
+
"57": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // Colombia
|
|
100
|
+
"58": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // Venezuela
|
|
101
|
+
"60": { pattern: /^\d{9,10}$/, minLength: 9, maxLength: 10 }, // Malaysia
|
|
102
|
+
"61": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Australia
|
|
103
|
+
"62": { pattern: /^\d{9,11}$/, minLength: 9, maxLength: 11 }, // Indonesia
|
|
104
|
+
"63": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // Philippines
|
|
105
|
+
"64": { pattern: /^\d{8,10}$/, minLength: 8, maxLength: 10 }, // New Zealand
|
|
106
|
+
"65": { pattern: /^\d{8}$/, minLength: 8, maxLength: 8 }, // Singapore
|
|
107
|
+
"66": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Thailand
|
|
108
|
+
"81": { pattern: /^\d{10,11}$/, minLength: 10, maxLength: 11 }, // Japan
|
|
109
|
+
"82": { pattern: /^\d{9,10}$/, minLength: 9, maxLength: 10 }, // South Korea
|
|
110
|
+
"84": { pattern: /^\d{9,10}$/, minLength: 9, maxLength: 10 }, // Vietnam
|
|
111
|
+
"86": { pattern: /^\d{11}$/, minLength: 11, maxLength: 11 }, // China
|
|
112
|
+
"90": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // Turkey
|
|
113
|
+
"91": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // India
|
|
114
|
+
"92": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // Pakistan
|
|
115
|
+
"93": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Afghanistan
|
|
116
|
+
"94": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Sri Lanka
|
|
117
|
+
"95": { pattern: /^\d{8,10}$/, minLength: 8, maxLength: 10 }, // Myanmar
|
|
118
|
+
"98": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // Iran
|
|
119
|
+
"212": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Morocco
|
|
120
|
+
"213": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Algeria
|
|
121
|
+
"234": { pattern: /^\d{10}$/, minLength: 10, maxLength: 10 }, // Nigeria
|
|
122
|
+
"254": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Kenya
|
|
123
|
+
"351": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Portugal
|
|
124
|
+
"352": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Luxembourg
|
|
125
|
+
"353": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Ireland
|
|
126
|
+
"354": { pattern: /^\d{7,9}$/, minLength: 7, maxLength: 9 }, // Iceland
|
|
127
|
+
"358": { pattern: /^\d{6,10}$/, minLength: 6, maxLength: 10 }, // Finland
|
|
128
|
+
"380": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Ukraine
|
|
129
|
+
"420": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Czech Republic
|
|
130
|
+
"421": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Slovakia
|
|
131
|
+
"852": { pattern: /^\d{8}$/, minLength: 8, maxLength: 8 }, // Hong Kong
|
|
132
|
+
"853": { pattern: /^\d{8}$/, minLength: 8, maxLength: 8 }, // Macau
|
|
133
|
+
"886": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Taiwan
|
|
134
|
+
"971": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // UAE
|
|
135
|
+
"972": { pattern: /^\d{9}$/, minLength: 9, maxLength: 9 }, // Israel
|
|
136
|
+
"974": { pattern: /^\d{8}$/, minLength: 8, maxLength: 8 }, // Qatar
|
|
137
|
+
};
|
|
138
|
+
const rule = validationRules[countryCode];
|
|
139
|
+
if (rule) {
|
|
140
|
+
// Use country-specific validation
|
|
141
|
+
if (nationalNumber.length < rule.minLength || nationalNumber.length > rule.maxLength) {
|
|
76
142
|
return { isValid: false };
|
|
77
143
|
}
|
|
78
|
-
|
|
79
|
-
else if (countryCode === "1") {
|
|
80
|
-
// US/Canada: 10 digits (without country code)
|
|
81
|
-
if (!/^\d{10}$/.test(nationalNumber)) {
|
|
144
|
+
if (!rule.pattern.test(nationalNumber)) {
|
|
82
145
|
return { isValid: false };
|
|
83
146
|
}
|
|
84
147
|
}
|
|
85
148
|
else {
|
|
86
|
-
// General validation: 4-15 digits
|
|
149
|
+
// General validation for countries without specific rules: 4-15 digits
|
|
87
150
|
if (!/^\d{4,15}$/.test(nationalNumber)) {
|
|
88
151
|
return { isValid: false };
|
|
89
152
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAyBA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "global-phone-validator",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "A reusable Node.js + TypeScript package for validating phone numbers worldwide. Supports any country using CountryCodes JSON, handles international formats (+CC), 0-prefixed, and plain digits. Includes mobile/landline detection for India and returns standardized E.164 format.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|