Comment puis-je valider un numéro de téléphone au Royaume-Uni en C# en utilisant une regex?Valider un numéro de téléphone au Royaume-Uni
Répondre
La regex dans la réponse acceptée ne correspond pas à tous les nombres britanniques valides, car elle est trop restrictive (des plages de numéros supplémentaires ont été ouvertes entre-temps, comme 0203, qu'elle considère comme invalide).
numéros de téléphone au Royaume-Uni suivent des règles assez simples:
Ils peuvent être 10 ou 11 chiffres (à l'exception de quelques numéros spéciaux, mais vous avez peu de chances d'avoir besoin de valider les)
Ils sont constitués d'un indicatif régional suivi d'un numéro local. L'indicatif régional a une longueur comprise entre trois et cinq chiffres, et la partie locale du numéro occupe la longueur restante de 10 ou 11 chiffres. À toutes fins pratiques, personne ne cite jamais la partie locale de son numéro, donc vous pouvez ignorer la distinction maintenant, sauf en ce qui concerne le formatage.
Ils commencent par zéro.
Le deuxième chiffre peut être n'importe quoi. Actuellement, aucun numéro valide ne commence par
04
ou06
, mais rien n'empêche l'utilisation de ces plages à l'avenir. (03
a été récemment mis en service)Ils peuvent être formatés avec un ensemble de parenthèses et avec des espaces (un ou plusieurs, dans des positions différentes), mais ceux-ci sont entièrement facultatifs.
Par conséquent, une expression de travail de base pour les numéros de téléphone au Royaume-Uni pourrait ressembler à ceci:
/^\(?0(*\d\)?){9,10}$/
Cela va vérifier 10 ou 11 numéros de chiffres, en commençant par un zéro, avec des espaces de mise en forme entre l'une des les chiffres, et éventuellement un ensemble de parenthèses pour l'indicatif régional.
(et oui, cela permettrait des parenthèses mal mises en correspondance, car je ne vérifie pas qu'il n'y a qu'un seul crochet de fermeture.) Cela rendrait l'expression beaucoup plus complexe, et je n'ai pas le temps pour ça. maintenant, mais ne hésitez pas à ajouter si vous le souhaitez)
Par ailleurs, si vous voulez faire un filtrage supplémentaire, vous pouvez également noter les règles suivantes:
les numéros commençant
08
,09
et070
sont des numéros de prix spéciaux, et ne seront généralement pas donnés en tant que numéros privés , peut donc être exclu si vous validez un numéro privé. Numéros sont mobiles (sauf070
, voir ci-dessus), donc peuvent être exclus si vous validez spécifiquement pour une ligne fixe.
- 1. Composer un numéro de téléphone via Bluetooth
- 2. Comment capturer un numéro de téléphone
- 3. Formatage du numéro de téléphone
- 4. Format numéro de téléphone dans datagridview
- 5. Trouver un numéro de téléphone ou un numéro unique à travers J2ME
- 6. Convertir NSString avec un nombre au format de localisation de numéro de téléphone approprié
- 7. Vérification du numéro de téléphone américain
- 8. Parse Numéro de téléphone en composants
- 9. ASP.NET GridView colonne - formatage numéro de téléphone
- 10. Récupérer le numéro de téléphone Windows Mobile
- 11. Numéro de téléphone à tiret unique - validation regex
- 12. Meilleur moyen d'extraire le numéro de téléphone et de reformater?
- 13. iPhone API obtenir le numéro de téléphone de l'appareil local
- 14. Palm WebOS - Comment obtenir le numéro de téléphone de l'utilisateur?
- 15. Récupération d'un numéro de téléphone mobile (cellulaire) sur le WAP
- 16. RegEx don permettre le 0 dans le numéro de téléphone
- 17. Permutation de lettres et de chiffres dans un numéro de téléphone
- 18. oracle varchar au numéro
- 19. Le moyen le plus rapide de formater un numéro de téléphone en C#?
- 20. PHP: format de numéro au format local
- 21. Valider l'utilisateur doit installer au moins un des sous caractéristiques
- 22. Comment prendre un numéro de téléphone avec un plus et un crochet et juste retourner les numéros?
- 23. iphone numéro de sim
- 24. Comment récupérer le numéro de téléphone de l'utilisateur par programme dans l'application iphone?
- 25. Est-ce que l'API Facebook REST vous permet d'obtenir le numéro de téléphone d'un ami?
- 26. Comment analyser et montrer les hyperliens (numéro de téléphone/adresses e-mail, etc.) dans UILabel?
- 27. iPhone SDK: Obtenir le nom du contact à partir du numéro de téléphone
- 28. Référence au numéro d'itération dans Java foreach
- 29. Blackberry - comment démarrer mon propre service au démarrage du téléphone?
- 30. Comment valider un javascript?
En haut de la page avec cette réponse! –
Je voudrais ajouter un commentaire (surtout maintenant en 2016) que le remplissage automatique à partir de carnets d'adresses, etc, peuplera les numéros de téléphone avec le code de numérotation international de 44 ou +44 en remplaçant le 0. Mon regex-foo n'est pas fort assez pour modifier votre regex pour résoudre ce problème. – Jmons