11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour
Peut être ne suis je pas dans le bon salon mais je ne sais pas où parler des expressions régulières en JS
voilà un bout de code test


maintenant = 'Mercredi 17  Janvier 2007' ;
myexpr1 = /^([A-Za-z]*?)\s* (\d+) \s* ([A-Za-z]*?)\s*(\d*?)(\d*?)(\d*?)(\d*)$/;

j'affiche ensuite le contenu des différents atomes. Il se trouve que c'est $7 qui contient l'année 2007. Les atomes 4,5 et 6 sont vides.
Quelqu'un sait il pourquoi ?

Remarque
si j'écris

myexpr2 = /^([A-Za-z]*?)\s* (\d)(\d) \s* ([A-Za-z]*?)\s* ([0-9]{2,4})$/;

tout va bien

Quelqu'un sait il pourquoi ?

Merci
Bonjour
Oui bien sur je peux tester les expressions régulières. Mais là le problème est une incompréhension du pourquoi les atomes ne sont pas ceux attendus. Pourquoi Les atomes 4,5 et 6 sont vides. Et les testeurs d'expressions ne le disent naturellement pas
Salut,

Je ne suis pas du tout un expert en expressions régulières, mais je ne suis pas étonné que tu n'obtiennes pas le résultat attendu. Que cherches-tu à faire avec ça ?
(\d*?)(\d*?)(\d*?)(\d*)
Ne voudrais-tu pas plutôt écrire
(\d?)(\d?)(\d?)(\d)
?
Bonsoir
Merci masi ce n'est pas tout à fait cela. Je voulais
/^([A-Za-z]*?)\s* (\d+) \s* ([A-Za-z]*?)\s* ([0-9]{2,4})$/
mais je ne comprends toujours pas pourquoi la précédente expression me donne des résultats très étranges (des atomes vides)