web-dev-qa-db-fra.com

Flutter - Valider un numéro de téléphone à l'aide de Regex

Dans mon application mobile plus futée, j'essaie de valider un numéro de téléphone en utilisant regex. Voici les conditions.

  1. Les numéros de téléphone doivent contenir 10 chiffres.
  2. Dans le cas où le code de pays que nous utilisons est de 12 chiffres. (exemples de codes de pays: +12, 012)
  3. Aucun espace ou aucun caractère autorisé entre les chiffres

En termes simples, voici les seuls numéros de téléphone "valides"

0776233475, +94776233475, 094776233475

Voici ce que j'ai essayé, mais cela ne fonctionne pas.

String _phoneNumberValidator(String value) {
    Pattern pattern =
        r'/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/';
    RegExp regex = new RegExp(pattern);
    if (!regex.hasMatch(value))
      return 'Enter Valid Phone Number';
    else
      return null;
  }

Comment puis-je resoudre ceci?

11
Lemon Juice

Vous pouvez rendre la première partie facultative correspondant à un + ou 0 suivi d'un 9. Faites ensuite correspondre 10 chiffres:

^(?:[+0]9)?[0-9]{10}$
  • ^ Début de chaîne
  • (?:[+0]9)? Correspond éventuellement à un + ou 0 suivi de 9
  • [0-9]{10} Correspond à 10 chiffres
  • $ Fin de chaîne

Démo Regex

19
The fourth bird

validation à l'aide de Regex

String validateMobile(String value) {
String patttern = r'(^(?:[+0]9)?[0-9]{10,12}$)';
RegExp regExp = new RegExp(patttern);
if (value.length == 0) {
      return 'Please enter mobile number';
}
else if (!regExp.hasMatch(value)) {
      return 'Please enter valid mobile number';
}
return null;
}                                                                                                
15
Dharmesh Mansata