J'ai un nom de variable dans un bean. Je veux ajouter @Pattern
validation pour accepter uniquement alphanumérique.
Actuellement, j'ai celui-ci.
@NotNull
@Pattern(regexp = "{A-Za-z0-9}*")
String name;
Mais l'erreur est Invalid regular expression.
J'ai essayé [A-Za-z0-9]
. Mais cela ne fonctionne pas non plus. Aucune erreur cependant. Il montre que toute entrée valide a échoué.
Essayez-vous ce modèle: ^[A-Za-z0-9]*$
ou ^[A-Za-z0-9]+$
pour éviter des résultats vides.
Si vous souhaitez vérifier qu'une chaîne ne contient que des caractères spécifiques, vous devez ajouter des ancres (^
pour le début de la chaîne, $
pour la fin de la chaîne) pour être sûr que votre modèle correspond à toute la chaîne.
Les accolades ne servent qu'à écrire une quantité, exemple: je veux deux a
:a{2}
Vous ne pouvez pas mettre de lettres à l'intérieur. Les seuls cas où vous pouvez rencontrer des lettres entre crochets sont lorsque vous utilisez des classes de caractères unicode: \p{L}
, \p{Greek}
, \p{Arabian}
, ...
De plus, vous pouvez utiliser une classe de caractères, qui peut être utilisée entre accolades, à savoir Alnum. Par exemple, pour un caractère alphanumérique d'une longueur comprise entre 1 et 32 caractères inclus:
@Pattern(regexp = "^[\\p{Alnum}]{1,32}$")
voir https://docs.Oracle.com/javase/7/docs/api/Java/util/regex/Pattern.html