Bonjour,
J'ai un petit problème de validation de date.
/^[0-9]{4}[-][0-9]{2}[-][0-9]{2}$/ ceci marche et me permet de valider une date au format 01-01-1980
En revanche cela ne marche pas /^[0-9]{4}[/][0-9]{2}[/][0-9]{2}$/.
J'aimerais valider qu'une date est au format 01/01/1980
Comment puis je faire .
D'avance merci.
salut ! Y a pas un mélange des 2 et des 4 dans ta regexp ?
tu peux remplacer [0-9] par \d, et [-] par - (car - a une signification particulière dans les character-class mais pas dans les regexp). /^[0-9]{4}[-][0-9]{2}[-][0-9]{2}$/ pourrait être simplifié en /^\d{4}-\d{2}-\d{2}$/
Pour le problème c'est effectivement les / qui posent problèmes. Tu peux soit les échapper avec \ (comme l'a dit jasperiel) soit utiliser un autre délimiteur (comme #) pour ta regexp (cette notation est spécifique à Ruby): %r#^\d{4}/\d{2}/\d{2}#
"if it moves, compile it." - Gentoo
Tu ne nous donnes pas le log d'erreur mais je pense que c'est un problème de quoting avec cette syntaxe [1] : la regexp s'arrête au premier slash rencontré. Ton éditeur ne fait pas la coloration syntaxique ? Tu n'as pas de bug au runtime genre syntax error ?
Tu peux "échapper" ton slash avec un antislash, et au passage supprimer les [brackets] (ensemble de caractères) puisqu'il n'y en a qu'un dedans. De plus, les marqueurs de comptage entre {curly braces} indiquent plutôt 1980/01/01 que 01/01/1980, je te recommande donc de remplacer le 4 par un 2 et remplacer le dernier 2 par un 4.
Je pense que ceci devrait marcher : /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/ Enfin je sais pas, j'ai pas testé.
En cas de souci, la doc est là : http://www.regular-expressions.info/reference.html http://www.regular-expressions.info/ruby.html
[1] c'est du sucre syntaxique sur Regexp.new : tu peux toujours regarder la doc de Ruby http://ruby-doc.org/core-1.9/classes/Regexp.html
railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails [ Hébergement et ressources techniques gracieusement fournis par la SSLL Nuxos Group ]
il y a 1 jour 20 heures
il y a 6 jours 5 heures
il y a 1 semaine 4 jours
il y a 1 semaine 4 jours
il y a 1 semaine 5 jours
il y a 2 semaines 3 jours
il y a 2 semaines 4 jours
il y a 2 semaines 5 jours
il y a 2 semaines 6 jours
il y a 3 semaines 1 jour