J'essaie de valider Codes de zone de numéro de téléphone forts> (Amérique du Nord) Vérifiez que le nombre ne commence pas avec un ou un zéro. En outre, le nombre ne devrait pas inclure des numéros réservés tels que ceux-ci (c'est-à-dire à l'exclusion de tout ce qui se termine en 11). J'ai essayé plusieurs choses, mais toujours pas de chance. Je ne suis pas très bon chez Regex. Voici mon dernier essai P>
\b([2-9](?!11)|[2-9][0-9]{2})\b
3 Réponses :
Votre tentative est très proche, vous n'avez pas besoin de l'expression "non plus" dans votre condition correspondante, juste un lookahead négatif, qui arrêtera le match s'il voit la chaîne. Voici un exemple de fegex de travail: Vous pouvez l'essayer Ici p> p>
solution sans lookaheads négatifs:
Cela devrait fonctionner comme requis, y compris les 0 et 1 CAVEZE.
123 invalid 001 invalid 212 valid 321 valid 449 valid 811 invalid 121 invalid 111 invalid 911 invalid 099 invalid
Il y a beaucoup de texte expliquant ce qui est requis. Vous pouvez obtenir plus de réponses si vous postez une liste de styles de nombres pour correspondre, puis une liste qui ne doit pas correspondre. Même si ce n'est pas parfait, vous pouvez voir comment ils l'ont contacté et modifier la regex vous-même ou mettre à jour la question pour couvrir les nouveaux faux positifs découverts.
Merci j'ai fait beaucoup plus que les exemples.
Brut première tentative Regex101.com/r/p6q79h/1 qui correspond à 414, 608, 920, 319, 715 et ne correspond pas 023, 123, 411, 611, 611, 811, 911
Op pouvez-vous indiquer quelle saveur (outil / bibliothèque) de regex avec laquelle vous travaillez?