2010-06-28 4 views
1

Je souhaite appliquer la validation pour les caractères spéciaux comme (,/'#[email protected][]}{+_)(*&^%$£"!\|<>) en utilisant le validateur jsf. J'ai implémenté le validateur pour le nombre mais maintenant je veux faire un validateur pour les caractères spéciaux.JSF: Validation pour les caractères spéciaux

value.toString().trim().matches(); 

Quel sera l'expression régulière dans la méthode matches() en classe java?

Je veux autoriser tout le champ à l'exclusion des caractères spécifiés.

merci à l'avance

Répondre

3

Pourquoi ne pas simplement permettent caractères alphanumériques seulement?

if (!value.toString().trim().matches("\\p{Alnum}*")) { 
    throw new ValidatorException(new FacesMessage("Invalid characters!")); 
} 

Si vous voulez vraiment aller de l'avant dans cette direction. Pour vérifier si la chaîne contient ces caractères, utilisez ceci:

if (value.toString().trim().matches(".*[,/'#[email protected]\\x5B\\x5D}{+_)(*&^%$£\"!\\|<>]+.*")) { 
    throw new ValidatorException(new FacesMessage("Invalid characters!")); 
} 

Gardez à l'esprit qu'il ya des personnages beaucoup plus disponibles dans l'Unicode charset vous auriez probablement vous aussi désavouer.

+0

Salut, Balus thanx 4 répondre ... mais je veux restreindre seulement les caractères de la liste ... tous les autres seront autorisés ... (ie "." Et les espaces blancs, etc. sont autorisés) –

+2

le million d'autres caractères dans [Unicode] (http://www.fileformat.info/info/unicode/block/index.htm)? Vous préférez faire correspondre les caractères ** autorisés **, pas les caractères * non autorisés. – BalusC

+0

vous avez raison ... mais ce n'est pas résoudre mon problème ... –