Bonjour à tous,
Tout juste débarqué sur linuxfr.org, site que j'admire beaucoup et dont j'ai beaucoup entendu parler, je viens vous demander conseil au sujet d'une expression rationnelle dont je voudrais me servir pour obliger les noms des utilisateurs (joueurs) de mon site web (mmorpg par navigateur, non, ne m'égorgez pas, je développe un jeu mais j'aime quand même Linux, hein) à :
- contenir entre 3 et 16 caractères ;
- commencer par une majuscule ;
- ne contenir aucun caractère spécial autre que le tiret simple - ;
- ne contenir aucun chiffre ;
- ne contenir de majuscules autre part qu'au début qu'après soit une espace, soit un tiret, soit une apostrophe.
C'est en réalité le dernier point qui me pose surtout problème ; je m'en remets donc à votre expérience et à votre ingéniosité.
Merci d'avance à tous,
Ululo
# A peu près
Posté par Jean B . Évalué à 3.
^[A-Z]([a-z\-]|[ '\-][A-Z])+$
Il manque la restriction de taille mais la règle qui précise qu'une majuscule peut suivre un espace (etc) empêche de le faire simplement.
Mais avec un strlen ou équivalent aucun soucis.
[^] # Re: A peu près
Posté par StreakyCobra . Évalué à 2.
^[A-Z]([a-z\-]|[ '\-][A-Z]){2,12}$
[^] # Re: A peu près
Posté par StreakyCobra . Évalué à 2.
^[A-Z]([a-z\-]|[ '\-][A-Z]){2,15}$
[^] # Re: A peu près
Posté par Obsidian . Évalué à 1.
[^] # Re: A peu près
Posté par StreakyCobra . Évalué à 2.
[^] # Re: A peu près
Posté par Ululo . Évalué à 2.
Ça marche !
Merci beaucoup, beaucoup, beaucoup.
Pour un premier contact avec la communauté linuxfr.org, c'est sûr que ça fait chaud au cœur.
SteakyCobra le {2,15} ne peut fonctionner puisque ([a-z\-]|[ '\-][A-Z]) autorise soit un, soit deux caractères.
J'utilise donc strlen qui fonctionne très bien, si je voulais tout intégrer à la RegEx c'était pour l'esthétique.
Bonne soirée à tous,
Ululo
# Un p'tit problème dans l'énoncé...
Posté par Pyscal . Évalué à 2.
- ne contenir aucun caractère spécial autre que le tiret simple - ;
- ne contenir de majuscules autre part qu'au début qu'après soit une espace, soit un tiret, soit une apostrophe.
Non?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.