RegExp javascript laisse passer les chiffres

Résolu/Fermé
Jim - 29 août 2012 à 14:07
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 29 août 2012 à 14:41
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

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 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
29 août 2012 à 14:38
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 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
29 août 2012 à 14:41
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