(20-01-2013, 09:59 PM)Plume a écrit :Effectivement. Je confirme par ailleurs que sous PERL y a pas besoin d'indiquer ces délimiteurs pour matcher, pour une fois Ruby est plus explicite (c'est pas plus mal).(20-01-2013, 05:29 PM)archANJS a écrit : Dans le premier exemple, c'est comme si tu indiquais à Ruby: "Trouve-moi toutes les lettres, espaces et tirets dans ces données.", tandis que dans le deuxième, tu lui indiques plutôt: "Trouve-moi tous les mots contenant que des lettres, espaces et tirets dans ces données.".
EDIT: zut, devancé. +1 Sephi.
C'est inexact. La deuxième veut dire : "Capture la chaine entière si elle ne contient que des lettres, des espaces et/ou des tirets".
Sinon, j'ai encore un petit soucis, la version de ma regex actuelle est celle-ci
/^[a-z -]+$/i
. Sur Rubular, ça matche bien les espaces (exemple "Pierre Francois" est matché), par contre dans mon appli ça capture pas les espaces (Pierre Francois me renvoie une erreur de validation). Pourtant c'est à la lettre près la même regex ^^Edition : J'ai trouvé d'où le bug vient. Il semblerait que lors de la mise en forme des donnée "cachées" dans le balise <script> que la gem utilise pour la validation coté client il supprime l'espace de ma regex. Ca sux. Je vais ouvrir une issue sur leur github
Edition Bis : une issue a été ouverte il y a quelques jours à ce sujet. Il existe un moyen de détourner le bug en remplaçant les espaces par leur équivalent hexadécimal (\x20).