2010-11-10 6 views
2

L'expression régulière suivante ne fonctionne pas pour les numéros de téléphone internationaux qui peuvent permettre à un maximum de 15 chiffres:Javascript Expression régulière pour téléphone Numéro international

^[a-zA-Z0-9-().\s]{10,15}$ 

Que faut-il être réglé?

+1

Et vous êtes sûr que les "numéros de téléphone internationaux" ne dépassent pas 15 chiffres? – Tomalak

+0

Je suis juste en suivant les instructions de mon client. – Amen

+0

Alors, quelles sont les règles que votre client vous a demandé de suivre? –

Répondre

3

Essayez d'ajouter une barre oblique inverse:

var unrealisticPhoneNumberRegex = /^[a-zA-Z0-9\-().\s]{10,15}$/; 

Maintenant, il est toujours pas très utile car vous permettre un nombre arbitraire de caractères de ponctuation aussi. Vraiment, la validation d'un numéro de téléphone comme ceci — surtout si vous voulez vraiment travailler pour tous les numéros de téléphone internationaux possibles est probablement une tâche désespérée. Je vous suggère d'aller avec ce que suggère @BalusC.

+0

Cela a fonctionné merci !!! – Amen

6

Vous trouverez peut-être l'expression rationnelle suivante plus utile, il essentiellement premières bandes tous les caractères spéciaux valides qui un international phone number peut contenir (espaces, parens, +, -, ., ext) et compte alors s'il y a au moins 7 chiffres (longueur minimale pour un numéro local valide).

function isValidPhonenumber(value) { 
    return (/^\d{7,}$/).test(value.replace(/[\s()+\-\.]|ext/gi, '')); 
} 
0

puis compte s'il y a au moins 7 chiffres (longueur minimale pour un nombre local valide).

Les numéros locaux les plus courts du monde ne comportent que deux ou trois chiffres.

Il existe de nombreux pays sans indicatif régional.

Il existe plusieurs lieux bien connus avec un code de pays à 3 chiffres et des numéros locaux à 4 chiffres.

Il peut être prudent de laisser tomber votre limite à 6 ou 5; Au cas où.

Questions connexes