MuslimTanger
Messages postés5Date d'inscriptionjeudi 16 décembre 2010StatutMembreDernière intervention18 janvier 2011 26 oct. 2009 à 19:18
c trésssssss bien
pegos
Messages postés2Date d'inscriptionjeudi 6 mars 2008StatutMembreDernière intervention26 octobre 2009 26 oct. 2009 à 11:36
Re Autant pour moi, j'ai été trop vite.
Une année est bissextile si divisible par 4 mais par par 100 à moins qu'elle soit divisible par 400 !
On a donc:
v = e.test(this) ? (parseInt(vs[1]) > 12 || parseInt(vs[1]) < 1 ? false : ((parseInt(vs[1]) != 2) ? (parseInt(vs[0]) > m[parseInt(vs[1])-1] ? false : true) : (parseInt(vs[0]) > ((vs[2]%4 == 0 && vs[2]%100 != 0)||vs[2]%400 == 0 ? m[1]+1 : m[1]) ? false : true))) : false;
Mille excuses.
PEGOS
pegos
Messages postés2Date d'inscriptionjeudi 6 mars 2008StatutMembreDernière intervention26 octobre 2009 26 oct. 2009 à 11:25
Bonjour,
Sauf erreur de ma part pour la vérif de date, une année est bissextile si elle est divisible par 4 mais pas par 400.
On a donc:
v = e.test(this) ? (parseInt(vs[1]) > 12 || parseInt(vs[1]) < 1 ? false : ((parseInt(vs[1]) != 2) ? (parseInt(vs[0]) > m[parseInt(vs[1])-1] ? false : true) : (parseInt(vs[0]) > (vs[2]%4 == 0 && vs[2]%400 != 0 ? m[1]+1 : m[1]) ? false : true))) : false;
A+
PEGOS
astro53
Messages postés48Date d'inscriptionjeudi 18 octobre 2007StatutMembreDernière intervention 5 août 2009 22 oct. 2009 à 10:42
Salut LaboTemplates, je viens de lire ton code et les commentaires.
Je cite: "Ayant mis le code en catégorie débutant, ça serait bien qu'un débutant comprenne le code à minima, donc découpage...". Malgre un niveau correct que j ai en javascript je n arrive pas a comprendre une partie de son contenue.
Je ne trouve vraiment pas que ce genre de function soit a un niveau debutant puisque je ne saurais pas ecrire un truc pareil. Donc bravo je vais essayer de comprendre ca en recherchant qu est ce que Sting et qu est ce que property et qu est ce que String.property. Si j ai bien compris String.property est un array vu que tu ecris obj[property] mais a part ca je n ai aucune idee de quel est cette valeur. C est le noir total.
Bref si tu pouvais m'eclairer sur tout ca je t en remercie d'avance et si tu peux modifie ca en niveau intermediaire. Parce que c est pas un debutant comme moi qui pourtant peut creer des menus dynamiques en javascript ou autre du genre, qui peut comprendre ca facilement.
A bientot
Astro
cs_Kimjoa
Messages postés262Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention19 septembre 2014 22 oct. 2009 à 00:21
re labotemplates !
alors concernant le trim, ok mais le mieux, même pour un débutant c'est le découpage niveaux regexp na {;o)
concernant le hasOwnProperty, j'ai recherché vite fais sur google , des problèmes de comptabilité, mais j'en ait pas trouvé :( ...j'ai pas du faire la nuance entre son rôle, qui pose problème , et son implémentation par les navigateurs :( .... , mais c'est là le probleme, c'est son rôle, quand on utilise cette fonction, on demande à l'objet toutes ses variable définit par sa classes de base, ou implémenté (écrite ou réécrite) par l instance, hors, elle n 'a pas lieux d étre dans ton teste ... pk vouloir passé absolument juste les propriété qui ne sont pas hérité?? ... si t'a un ptit niveau programmation orienté OO, tu comprendra, mais c'est vrai que pour un noob en js, le nom de la fonction peux porté à confusion..
concernant le arobase dans le nom d'utilisateur, lool , ouais un groupe sur facebook si tu veux !! mais c'est pour ça que je t ai laissé le "loisir" de la tester dans toute les situation, t'as regexp, hé là , tu me contredira pas que c'ets la galère!! ;)
Pour le phone, et la date , si tu le dit !! , j 'irais pas vérifié, mais , je voulais juste savoir ou tu en étais :)
sinon , veux quand même appuyer sur le faite que tes regexp, devrais être des constantes, même si elle mette 0.1 millisecondes a être évalue, c'est juste un problème de méthodologie, ...
voilà , voilà chacun à sa façon de parler, mais il dois toujours pouvoirs écouter les autres :)
bye!
labotemplates
Messages postés17Date d'inscriptionvendredi 13 mars 2009StatutMembreDernière intervention 3 décembre 2009 21 oct. 2009 à 22:48
- Pas faux pour le boolean sur test() si on se contente d'un boolean. Le ternaire ici permet d'appeler autre chose selon l'utilisation voulue.
- Pour le pattern sur le mail, je m'appuie simplement sur les RFC qui permettent beaucoup plus de choses que le pattern que tu proposes, même si habituellement utilisé :) En théorie, nous serions en droit d'avoir un arobase dans le nom d'utilisateur, par exemple. C'est idiot mais pourtant vrai. On créé un groupe militant sur Facebook ?
- Pour hasOwnProperty, je n'ai pas de souci de compatibilité (IE6+, Safari, Chrome, Firefox et Opéra). Peux tu m'en dire plus sur les browsers qui n'acceptent pas ?
- Pour la regexp sur le trim, tu as raison, mais moi aussi ! na. Ayant mis le code en catégorie débutant, ça serait bien qu'un débutant comprenne le code à minima, donc découpage...
- Pour le phone, la regexp s'appuie sur les normes internationales (voir UIT)
- la date est un contrôle de date franco-française de type dd/mm/yyyy. C'est la regexp ou la fonction qui posent un problème de compréhension ?
J'ai oublié quelque chose d'autre ?
Merci pour ces remarques constructives en tout cas même si les habitudes de codage ne sont pas les mêmes pour tout le monde. C'est comme l'orthographe ça... :)
cs_Kimjoa
Messages postés262Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention19 septembre 2014 21 oct. 2009 à 22:01
salut labotemplates.
y'a destruc qui me plaise pas tros dans ton code, tout le test dans ta fonction tu utilise 'hasOwnProperty' qui n 'est pas supporté par tout les browser, de plus cette fonction contrairement à l'opérateur 'in', recherche si la propriété existe dans ton objet initiale, et nous dans les sous chaine de prototype. Du coup a moin de lui passé une instance dérivant de plusieurs classe, elle n'a pas beaucoup d'utilité.
Toujours dans la même fonction tu utilises une syntaxe courte comme test conditionnelle, hors cette syntaxe oblige à spécifier le 'else', dans ton cas tu renvoie false, à undefined ...c'est pas très propre, le mieux aurait été de fair un if classique ou alors:
'obj[property] = obj[property] || extension[property]'
Sinon tes rexexp devrait etre des constantes hors tu les initialise à chaque appel, le mieux aurait été de mettre ses constance dans une fonction anonyme , renvoyant l 'objet à étendre:
(function(){
TRIMREG= /^[^\s]+/g;
return {
trim : function(){
bou de code utilisant TRIMREG
}
}
})()
Sinon de mémoire la fonction test renvoie un boolean, donc il sert à rien de enregistrer le test pour retourner en fonction d'une condition un bool correspondant au test
ta regexp de l'émail semble simpliste , surtout le ^.+, mais je te laisse tester , pour ma part j'utilise cette reg trouvé sur le net ^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$
ton expreg trim pourrait être plus simple : /^\s+|\s+$/g
26 oct. 2009 à 19:18
26 oct. 2009 à 11:36
Une année est bissextile si divisible par 4 mais par par 100 à moins qu'elle soit divisible par 400 !
On a donc:
v = e.test(this) ? (parseInt(vs[1]) > 12 || parseInt(vs[1]) < 1 ? false : ((parseInt(vs[1]) != 2) ? (parseInt(vs[0]) > m[parseInt(vs[1])-1] ? false : true) : (parseInt(vs[0]) > ((vs[2]%4 == 0 && vs[2]%100 != 0)||vs[2]%400 == 0 ? m[1]+1 : m[1]) ? false : true))) : false;
Mille excuses.
PEGOS
26 oct. 2009 à 11:25
Sauf erreur de ma part pour la vérif de date, une année est bissextile si elle est divisible par 4 mais pas par 400.
On a donc:
v = e.test(this) ? (parseInt(vs[1]) > 12 || parseInt(vs[1]) < 1 ? false : ((parseInt(vs[1]) != 2) ? (parseInt(vs[0]) > m[parseInt(vs[1])-1] ? false : true) : (parseInt(vs[0]) > (vs[2]%4 == 0 && vs[2]%400 != 0 ? m[1]+1 : m[1]) ? false : true))) : false;
A+
PEGOS
22 oct. 2009 à 10:42
Je cite: "Ayant mis le code en catégorie débutant, ça serait bien qu'un débutant comprenne le code à minima, donc découpage...". Malgre un niveau correct que j ai en javascript je n arrive pas a comprendre une partie de son contenue.
Je ne trouve vraiment pas que ce genre de function soit a un niveau debutant puisque je ne saurais pas ecrire un truc pareil. Donc bravo je vais essayer de comprendre ca en recherchant qu est ce que Sting et qu est ce que property et qu est ce que String.property. Si j ai bien compris String.property est un array vu que tu ecris obj[property] mais a part ca je n ai aucune idee de quel est cette valeur. C est le noir total.
Bref si tu pouvais m'eclairer sur tout ca je t en remercie d'avance et si tu peux modifie ca en niveau intermediaire. Parce que c est pas un debutant comme moi qui pourtant peut creer des menus dynamiques en javascript ou autre du genre, qui peut comprendre ca facilement.
A bientot
Astro
22 oct. 2009 à 00:21
alors concernant le trim, ok mais le mieux, même pour un débutant c'est le découpage niveaux regexp na {;o)
concernant le hasOwnProperty, j'ai recherché vite fais sur google , des problèmes de comptabilité, mais j'en ait pas trouvé :( ...j'ai pas du faire la nuance entre son rôle, qui pose problème , et son implémentation par les navigateurs :( .... , mais c'est là le probleme, c'est son rôle, quand on utilise cette fonction, on demande à l'objet toutes ses variable définit par sa classes de base, ou implémenté (écrite ou réécrite) par l instance, hors, elle n 'a pas lieux d étre dans ton teste ... pk vouloir passé absolument juste les propriété qui ne sont pas hérité?? ... si t'a un ptit niveau programmation orienté OO, tu comprendra, mais c'est vrai que pour un noob en js, le nom de la fonction peux porté à confusion..
concernant le arobase dans le nom d'utilisateur, lool , ouais un groupe sur facebook si tu veux !! mais c'est pour ça que je t ai laissé le "loisir" de la tester dans toute les situation, t'as regexp, hé là , tu me contredira pas que c'ets la galère!! ;)
Pour le phone, et la date , si tu le dit !! , j 'irais pas vérifié, mais , je voulais juste savoir ou tu en étais :)
sinon , veux quand même appuyer sur le faite que tes regexp, devrais être des constantes, même si elle mette 0.1 millisecondes a être évalue, c'est juste un problème de méthodologie, ...
voilà , voilà chacun à sa façon de parler, mais il dois toujours pouvoirs écouter les autres :)
bye!
21 oct. 2009 à 22:48
- Pour le pattern sur le mail, je m'appuie simplement sur les RFC qui permettent beaucoup plus de choses que le pattern que tu proposes, même si habituellement utilisé :) En théorie, nous serions en droit d'avoir un arobase dans le nom d'utilisateur, par exemple. C'est idiot mais pourtant vrai. On créé un groupe militant sur Facebook ?
- Pour hasOwnProperty, je n'ai pas de souci de compatibilité (IE6+, Safari, Chrome, Firefox et Opéra). Peux tu m'en dire plus sur les browsers qui n'acceptent pas ?
- Pour la regexp sur le trim, tu as raison, mais moi aussi ! na. Ayant mis le code en catégorie débutant, ça serait bien qu'un débutant comprenne le code à minima, donc découpage...
- Pour le phone, la regexp s'appuie sur les normes internationales (voir UIT)
- la date est un contrôle de date franco-française de type dd/mm/yyyy. C'est la regexp ou la fonction qui posent un problème de compréhension ?
J'ai oublié quelque chose d'autre ?
Merci pour ces remarques constructives en tout cas même si les habitudes de codage ne sont pas les mêmes pour tout le monde. C'est comme l'orthographe ça... :)
21 oct. 2009 à 22:01
y'a destruc qui me plaise pas tros dans ton code, tout le test dans ta fonction tu utilise 'hasOwnProperty' qui n 'est pas supporté par tout les browser, de plus cette fonction contrairement à l'opérateur 'in', recherche si la propriété existe dans ton objet initiale, et nous dans les sous chaine de prototype. Du coup a moin de lui passé une instance dérivant de plusieurs classe, elle n'a pas beaucoup d'utilité.
Toujours dans la même fonction tu utilises une syntaxe courte comme test conditionnelle, hors cette syntaxe oblige à spécifier le 'else', dans ton cas tu renvoie false, à undefined ...c'est pas très propre, le mieux aurait été de fair un if classique ou alors:
'obj[property] = obj[property] || extension[property]'
Sinon tes rexexp devrait etre des constantes hors tu les initialise à chaque appel, le mieux aurait été de mettre ses constance dans une fonction anonyme , renvoyant l 'objet à étendre:
(function(){
TRIMREG= /^[^\s]+/g;
return {
trim : function(){
bou de code utilisant TRIMREG
}
}
})()
Sinon de mémoire la fonction test renvoie un boolean, donc il sert à rien de enregistrer le test pour retourner en fonction d'une condition un bool correspondant au test
ta regexp de l'émail semble simpliste , surtout le ^.+, mais je te laisse tester , pour ma part j'utilise cette reg trouvé sur le net ^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$
ton expreg trim pourrait être plus simple : /^\s+|\s+$/g
je comprend pas tas regexp phone , ni date ...
c'est a peut prêt tout , bonne continuation !!