Mihamina (R12y) Rakotomandimby a écrit :
> Si je fait
> var expression = /[^a-z]/i;
> au lieu de
> var expression = /[^a-z]/gi;
>
> Alors ça fonctionne.
> Maintenant, je cherche à comprendre...
C'est parce que ta regexp ne contient pas les notions de début et de
fin d'expression, et qu'avec le taf global, il trouvait une portion de
la chaine testée qui correspondait à la regexp.
Pour être certain de tester toute la chaine, il faut indiquer que la
regexp contiennent les séquences de début (^) et de fin ($) de chaine :
/^[^a-z]$/i
/^[^a-z]$/i.exec('ddd') == null
/^[^a-z]$/i.exec('ddd ') == null
/^[^a-z]$/i.exec('ddd d') == null
/^[^a-z]$/i.exec(' ').length == 1
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org