mobile-sg-validator
v2.0.3
Published
Type-safe international mobile number validation for 200+ countries
Maintainers
Readme
mobile-sg-validator
Type-safe international mobile phone number validation for 200+ countries.
Installation
npm install mobile-sg-validatorUsage
Simple validation (boolean)
import { validateMobileNumber } from 'mobile-sg-validator';
validateMobileNumber('+919876543210'); // true — India
validateMobileNumber('+447911123456'); // true — United Kingdom
validateMobileNumber('+1234'); // false
validateMobileNumber('notanumber'); // falseDetailed validation
Returns full country info including country, country_code, country_name, and mobile_number:
import { validateMobileNumberDetailed } from 'mobile-sg-validator';
const result = validateMobileNumberDetailed('+918024571878');
// {
// isValid: true,
// country: 'IN',
// country_code: '91',
// country_name: 'India',
// mobile_number: '8024571878',
// formattedNumber: '+918024571878'
// }
const uk = validateMobileNumberDetailed('+447911123456');
// {
// isValid: true,
// country: 'GB',
// country_code: '44',
// country_name: 'United Kingdom',
// mobile_number: '7911123456',
// formattedNumber: '+447911123456'
// }
const bad = validateMobileNumberDetailed('+123');
// { isValid: false, error: 'Phone number is not valid' }Access country patterns directly
import { countryPhonePatterns } from 'mobile-sg-validator';
const india = countryPhonePatterns['IN'];
console.log(india.code); // '+91'
console.log(india.country_name); // 'India'
console.log(india.pattern); // /^(?:\+91|91)?[-\s]?[6-9]\d{9}$/API
validateMobileNumber(phoneNumber: string): boolean
Returns true when the phone number is valid for its detected country.
validateMobileNumberDetailed(phoneNumber: string): ValidationResult
Returns a detailed result object:
interface ValidationResult {
isValid: boolean;
country?: CountryCode; // ISO 3166-1 alpha-2, e.g. 'IN'
country_code?: string; // Numeric dialing code, e.g. '91'
country_name?: string; // Full country name, e.g. 'India'
mobile_number?: string; // Local digits only, e.g. '8024571878'
formattedNumber?: string; // E.164 format, e.g. '+918024571878'
error?: string; // Present when isValid is false
}countryPhonePatterns
A Readonly<Record<CountryCode, CountryPhonePattern>> map.
interface CountryPhonePattern {
code: string; // Dialing code, e.g. '+91'
country_name: string; // Full country name, e.g. 'India'
pattern: RegExp; // Validation regex for E.164 numbers
}CountryCode
TypeScript union type of all 200+ supported ISO 3166-1 alpha-2 country codes.
Supported Countries
200+ countries including 🇮🇳 India, 🇺🇸 USA, 🇬🇧 UK, 🇨🇳 China, 🇩🇪 Germany, 🇫🇷 France, 🇯🇵 Japan, and many more.
License
MIT © 2026 Sangram Ghadage
