RegExp javascript laisse passer les chiffres

Résolu
Jim -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un problème avec une regex en javascript.
Celle-ci autorise les chiffres et le caractère "!" a passer alors qu'elle ne le spécifie pas.

Pour le reste elle fonctionne, et biensûr j'ai été en debug pour voir si elle faisait bien le test, etc... et c'est le cas. Elle retourne true alors même qu'il y a des chiffres.

Voici la regex en question :
new RegExp("^[^\\- ][A-Za-z\u00C00-\u017F\\- ]+"); // \u00C00-\u017F = À-S(latin)


L'étrangetée, c'est que j'ai exactement la même côté serveur en java et qu'elle fonctionne parfaitement.


Merci d'avance pour vos réponses :)
A voir également:

2 réponses

Jim
 
C'est bon, c'est résolu.

Le problème venait simplement du fait que \u00C00 avait un zéro de trop. (faut de frappe).

La regex est désormais :
new RegExp("^[^\\- ][A-Za-z\u00C0-\u017F\\- ]+"); // \u00C00-\u017F = À-S(latin)

et fonctionne comme je le voulais.
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut Jim,

Sans connaître ces places d'Unicode, ce ne serait pas plutôt \u017F-\u00C00 ?

Parce qu'avec \u00C00-\u017F, tu pars de la fin pour arriver vers le début (0xC00 > à 0x17F).


Dal
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Ma réponse s'est télescopée avec ton message. C'était donc bien un problème lié à la plage Unicode. En la définissant comme tu le faisais, elle bouclait sur le début, et donc notamment sur les caractères numériques.
0