/ / Regex de validation de numéro de téléphone avec des contraintes personnalisées - javascript, regex

Regex de validation du numéro de téléphone avec contraintes personnalisées - javascript, regex

Je devrais valider un numéro de téléphone. Mes contraintes sont comme ça.

  1. Les numéros de téléphone ne doivent pas contenir d’alphabets (bien que ce soit idiot;))
  2. Le numéro de téléphone doit comporter au minimum 10 caractères et au maximum 17 caractères.
  3. le numéro de téléphone doit accepter "-", ".", "+". (non obligatoire)
  4. "-" ou "." si présent, ne doit pas être en début ou en fin de numéro.
  5. Un seul "+" est autorisé et cela aussi au début du nombre
  6. Le numéro de téléphone ne doit pas être valide si tous les caractères entrés sont "-" ou "."

Jusqu'à présent, j'utilise l'expression suivante.

var phoneExpression = /^(?=.*[0-9])([0-9.-+ ()/]+)*$/;

bien que cela ne réponde pas à toutes mes contraintes. S'il vous plaît me fournir un bon regular expression.

Réponses:

1 pour la réponse № 1

Celui-ci devrait répondre à toutes les contraintes saufpour 10 caractères et maximum 17 caractères car il ne comptera pas le + chant s'il est présent. Si vous en avez besoin, vous devez dupliquer la regex avec une alternance |

^+?[0-9][0-9.-]{8,15}[0-9]$

DEMO


1 pour la réponse № 2

Ceci répond à toutes vos contraintes écrites, en comptant le + comme caractère si présent:

(?=^.{10,17}$)+?d[d.-]+d$

Si vous souhaitez ajouter des parenthèses et des espaces, placez-les simplement dans la classe de caractères. Je soupçonne que cela n’est pas suffisant car votre description acceptera des constructions qui ne sont clairement pas des numéros de téléphone.