Il existe une validation regex dans JSR-303 (javax.validation). Par exemple:Validation Regex - montrer le (s) caractère (s) fautif (s). javax.validation
@Pattern(regexp="[\w_\\.]+")
private String username;
Le message par défaut affiché lorsque la valeur est non valide (ne correspond pas à l'expression régulière) est quelque chose comme « doit correspondre {regex} ». Mais les utilisateurs ne comprennent pas regex, donc il n'est pas pertinent de leur montrer. Une option est de simplement montrer "Le nom d'utilisateur contient des caractères illégaux", et il sera probablement très bien dans la plupart des cas. Mais il sera bon de montrer quel personnage a tort.
Cela ne peut pas être directement réalisé avec regex - il correspond ou non. Vous devez soit définir d'autres modèles qui manquent certains composants, soit essayer de supprimer des caractères de la chaîne jusqu'à ce qu'elle corresponde, puis montrer ces caractères à l'utilisateur.
C'était en général. Une autre question est comment y parvenir avec javax.validation.
Donc, pour résumer la question: « Les personnages, * et $ sont illégales »
Comment afficher les caractères offensants avec javax.validation, de sorte que le message ressemble
Parfois, c'est une bonne idée de ne pas dire ce qui est illégal, mais de dire ce qui est légal. Par exemple: "Le nom d'utilisateur doit être constitué uniquement de chiffres et de lettres." – Ingo
@Ingo - oui, mais quand on ajoute "underscore and dot" ("et dash and tilde"), ça devient trop verbeux. – Bozho