Vérifiez et formatez instantanément des numéros de téléphone du monde entier. Validation selon les standards ITU-T E.164, détection du type de ligne et formatage automatique. Code source fourni pour intégration dans vos projets.
components.privacyNotice.title components.privacyNotice.message
Validez et formatez des numéros de téléphone de tous pays avec cet outil complet. Il utilise les standards internationaux ITU-T E.164 pour garantir la précision et supporte plus de 200 pays et territoires.
Vérification du format et de la structure du numéro selon les standards internationaux.
Identification du type de ligne et du fournisseur de services.
Identification du pays, de la région et du fuseau horaire associés au numéro.
Formatage automatique selon les conventions nationales ou internationales.
// Installation : npm install libphonenumber-js
import { parsePhoneNumber, isValidPhoneNumber, getCountryCallingCode } from 'libphonenumber-js';
class PhoneValidator {
// Validation complète d'un numéro
static validatePhone(phoneNumber, defaultCountry = 'FR') {
try {
// Parsing du numéro
const parsedNumber = parsePhoneNumber(phoneNumber, defaultCountry);
return {
isValid: parsedNumber.isValid(),
number: parsedNumber.number,
nationalNumber: parsedNumber.nationalNumber,
countryCallingCode: parsedNumber.countryCallingCode,
country: parsedNumber.country,
type: parsedNumber.getType(), // 'MOBILE', 'FIXED_LINE', etc.
// Différents formats
formats: {
international: parsedNumber.formatInternational(),
national: parsedNumber.formatNational(),
e164: parsedNumber.format('E.164'),
uri: parsedNumber.getURI()
},
// Informations supplémentaires
possibleCountries: parsedNumber.getPossibleCountries(),
isPossible: parsedNumber.isPossible(),
isValidNumber: isValidPhoneNumber(phoneNumber, defaultCountry)
};
} catch (error) {
return {
isValid: false,
error: error.message,
suggestion: this.getSuggestion(phoneNumber)
};
}
}
// Validation simple et rapide
static isValid(phoneNumber, country) {
return isValidPhoneNumber(phoneNumber, country);
}
// Formatage automatique
static format(phoneNumber, format = 'INTERNATIONAL', country = 'FR') {
try {
const parsed = parsePhoneNumber(phoneNumber, country);
switch(format.toUpperCase()) {
case 'NATIONAL':
return parsed.formatNational();
case 'E164':
return parsed.format('E.164');
case 'URI':
return parsed.getURI();
default:
return parsed.formatInternational();
}
} catch (error) {
return null;
}
}
// Détection du pays
static detectCountry(phoneNumber) {
try {
const parsed = parsePhoneNumber(phoneNumber);
return {
country: parsed.country,
countryName: this.getCountryName(parsed.country),
callingCode: parsed.countryCallingCode,
possibleCountries: parsed.getPossibleCountries()
};
} catch (error) {
return null;
}
}
// Suggestions en cas d'erreur
static getSuggestion(phoneNumber) {
const cleaned = phoneNumber.replace(/[^0-9+]/g, '');
if (cleaned.length < 8) {
return "Le numéro semble trop court";
}
if (cleaned.length > 15) {
return "Le numéro semble trop long";
}
if (!cleaned.startsWith('+') && !cleaned.startsWith('0')) {
return "Ajoutez l'indicatif pays (+33) ou le 0 initial";
}
return "Vérifiez le format du numéro";
}
// Obtenir le nom du pays
static getCountryName(countryCode) {
const countries = {
'FR': 'France',
'US': 'États-Unis',
'GB': 'Royaume-Uni',
'DE': 'Allemagne',
'ES': 'Espagne',
'IT': 'Italie',
'JP': 'Japon',
'CN': 'Chine',
// ... autres pays
};
return countries[countryCode] || countryCode;
}
// Validation par lot
static validateBatch(phoneNumbers, defaultCountry = 'FR') {
return phoneNumbers.map(phone => ({
input: phone,
...this.validatePhone(phone, defaultCountry)
}));
}
}
// Exemples d'utilisation
// {
// isValid: true,
// number: '+33123456789',
// country: 'FR',
// type: 'FIXED_LINE',
// formats: {
// international: '+33 1 23 45 67 89',
// national: '01 23 45 67 89',
// e164: '+33123456789'
// }
// }
// Validation par lot
const numbers = ['01 23 45 67 89', '+1 555 123 4567', '0612345678'];Validation + informations carrier
200 requêtes/mois gratuites
API RESTful simple
Validation avancée + roaming
JavaScript - Basé sur Google libphonenumber
Port Python de Google libphonenumber
Pour applications iOS
Librairie Google originale
components.outilPage.suggestion.description