var grp = 'fr';
var str = 'fr et france franchit les frames de free';
var pattern = new RegExp(grp);
var myarr = str.split(pattern);
alert('dans "' + str + '" \n' + grp +' trouvé ' + myarr.length + '
fois\n');
J'essaie de compter le nombre d'occurence de 'fr'
dans la phrase 'fr et france franchit les frames de free';
Selon les navigateurs fireFox et Opera la longuer du tableau
myarr est 6
donc on trouve 5 fois la chaine 'fr'
mais selon IE myarr ne compte que 5 éléments
est ce normal que la fonction split ait un comportement
différent selon les navigateurs?
y a-t-il une autre façon de compter le nombre d'une
sous chaine dans une autre.
Merci de votre aide,
Pierre.
-----
échangez opinions et commentaires dans les forums de discussion.
http://www.usenetgratuit.com/
var grp = 'fr'; var str = 'fr et france franchit les frames de free'; var pattern = new RegExp(grp); var myarr = str.split(pattern);
Tiens ? Pourquoi passer par une RegExp alors que la fonction split prend une chaîne comme argument ?
var myarr = 'fr et france franchit les frames de free'.split('fr');
J'essaie de compter le nombre d'occurence de 'fr' dans la phrase 'fr et france franchit les frames de free'; Selon les navigateurs fireFox et Opera la longuer du tableau myarr est 6 donc on trouve 5 fois la chaine 'fr'
mais selon IE myarr ne compte que 5 éléments est ce normal que la fonction split ait un comportement différent selon les navigateurs?
De deux choses l'une : - soit le passage par une RegExp a un effet de bord bizarre ; - soit IE ne compte pas la chaîne vide initiale : '', ' et ', 'ance ', 'anchit les ', 'ames de ', 'ee'
y a-t-il une autre façon de compter le nombre d'une sous chaine dans une autre.
1) 'fr et france franchit les frames de free'.match(/fr/g).length; (il faut peut-être traiter à part le cas où "fr" se trouve zéro fois car le match() retournera null)
2) var pattern = /fr/g; pattern.exec('fr et france franchit les frames de free').length; (idem)
-- Olivier Miakinen Troll du plus sage chez les conviviaux : le nouveau venu, avec son clan, s'infiltre dans les groupes de nouvelles. (3 c.)
var grp = 'fr';
var str = 'fr et france franchit les frames de free';
var pattern = new RegExp(grp);
var myarr = str.split(pattern);
Tiens ? Pourquoi passer par une RegExp alors que la fonction split prend
une chaîne comme argument ?
var myarr = 'fr et france franchit les frames de free'.split('fr');
J'essaie de compter le nombre d'occurence de 'fr'
dans la phrase 'fr et france franchit les frames de free';
Selon les navigateurs fireFox et Opera la longuer du tableau
myarr est 6
donc on trouve 5 fois la chaine 'fr'
mais selon IE myarr ne compte que 5 éléments
est ce normal que la fonction split ait un comportement
différent selon les navigateurs?
De deux choses l'une :
- soit le passage par une RegExp a un effet de bord bizarre ;
- soit IE ne compte pas la chaîne vide initiale :
'', ' et ', 'ance ', 'anchit les ', 'ames de ', 'ee'
y a-t-il une autre façon de compter le nombre d'une
sous chaine dans une autre.
1)
'fr et france franchit les frames de free'.match(/fr/g).length;
(il faut peut-être traiter à part le cas où "fr" se trouve zéro fois car
le match() retournera null)
2)
var pattern = /fr/g;
pattern.exec('fr et france franchit les frames de free').length;
(idem)
--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)
var grp = 'fr'; var str = 'fr et france franchit les frames de free'; var pattern = new RegExp(grp); var myarr = str.split(pattern);
Tiens ? Pourquoi passer par une RegExp alors que la fonction split prend une chaîne comme argument ?
var myarr = 'fr et france franchit les frames de free'.split('fr');
J'essaie de compter le nombre d'occurence de 'fr' dans la phrase 'fr et france franchit les frames de free'; Selon les navigateurs fireFox et Opera la longuer du tableau myarr est 6 donc on trouve 5 fois la chaine 'fr'
mais selon IE myarr ne compte que 5 éléments est ce normal que la fonction split ait un comportement différent selon les navigateurs?
De deux choses l'une : - soit le passage par une RegExp a un effet de bord bizarre ; - soit IE ne compte pas la chaîne vide initiale : '', ' et ', 'ance ', 'anchit les ', 'ames de ', 'ee'
y a-t-il une autre façon de compter le nombre d'une sous chaine dans une autre.
1) 'fr et france franchit les frames de free'.match(/fr/g).length; (il faut peut-être traiter à part le cas où "fr" se trouve zéro fois car le match() retournera null)
2) var pattern = /fr/g; pattern.exec('fr et france franchit les frames de free').length; (idem)
-- Olivier Miakinen Troll du plus sage chez les conviviaux : le nouveau venu, avec son clan, s'infiltre dans les groupes de nouvelles. (3 c.)
p_geni...
Olivier Miakinen wrote:
Merci pour cette réponse claire.
1) 'fr et france franchit les frames de free'.match(/fr/g).length; (il faut peut-être traiter à part le cas où "fr" se trouve zéro fois car le match() retournera null)
2) var pattern = /fr/g; pattern.exec('fr et france franchit les frames de free').length; (idem)
je vais tester avec ces deux fonctions match et exec et si j'ai de la chance la méthode length devrait retourner 0 sur un tableau vide.
Pierre.
----- échangez opinions et commentaires dans les forums de discussion. http://www.usenetgratuit.com/
Olivier Miakinen wrote:
Merci pour cette réponse claire.
1)
'fr et france franchit les frames de free'.match(/fr/g).length;
(il faut peut-être traiter à part le cas où "fr" se trouve zéro fois car
le match() retournera null)
2)
var pattern = /fr/g;
pattern.exec('fr et france franchit les frames de free').length;
(idem)
je vais tester avec ces deux fonctions match et exec
et si j'ai de la chance la méthode length devrait
retourner 0 sur un tableau vide.
Pierre.
-----
échangez opinions et commentaires dans les forums de discussion.
http://www.usenetgratuit.com/
1) 'fr et france franchit les frames de free'.match(/fr/g).length; (il faut peut-être traiter à part le cas où "fr" se trouve zéro fois car le match() retournera null)
2) var pattern = /fr/g; pattern.exec('fr et france franchit les frames de free').length; (idem)
je vais tester avec ces deux fonctions match et exec et si j'ai de la chance la méthode length devrait retourner 0 sur un tableau vide.
Pierre.
----- échangez opinions et commentaires dans les forums de discussion. http://www.usenetgratuit.com/
p_geni...
Olivier Miakinen wrote:
1) 'fr et france franchit les frames de free'.match(/fr/g).length; (il faut peut-être traiter à part le cas où "fr" se trouve zéro fois car le match() retournera null)
avec la méthode match j'ai la même taille avec les trois navigateurs.
Pierre. ----- échangez opinions et commentaires dans les forums de discussion. http://www.usenetgratuit.com/
Olivier Miakinen wrote:
1)
'fr et france franchit les frames de free'.match(/fr/g).length;
(il faut peut-être traiter à part le cas où "fr" se trouve zéro fois car
le match() retournera null)
avec la méthode match j'ai la même taille avec les trois
navigateurs.
Pierre.
-----
échangez opinions et commentaires dans les forums de discussion.
http://www.usenetgratuit.com/
1) 'fr et france franchit les frames de free'.match(/fr/g).length; (il faut peut-être traiter à part le cas où "fr" se trouve zéro fois car le match() retournera null)
avec la méthode match j'ai la même taille avec les trois navigateurs.
Pierre. ----- échangez opinions et commentaires dans les forums de discussion. http://www.usenetgratuit.com/
Dr John Stockton
JRS: In article <43654289$0$9481$, dated Sun, 30 Oct 2005 22:00:41, seen in news:fr.comp.lang.javascript, Pierre =?ISO- 8859-15?Q?Génieys?= <p_geni.?.?.?@yahoo.fr> posted :
J'essaie de compter le nombre d'occurence de 'fr' dans la phrase 'fr et france franchit les frames de free'; Selon les navigateurs fireFox et Opera la longuer du tableau myarr est 6 donc on trouve 5 fois la chaine 'fr'
Si "fr" est au commencement ou au termination du String, doit-il etre apres .split("fr") une premiere or derniere element "" ? Pour quelques browser-auteurs, oui; pour autres, non.
mais selon IE myarr ne compte que 5 éléments est ce normal que la fonction split ait un comportement différent selon les navigateurs?
y a-t-il une autre façon de compter le nombre d'une sous chaine dans une autre.
Oui.
St = 'fr et france franchit les frames de free' No = St.length - St.replace(/fr/g, "*").length ou No = (St.length - St.replace(/fr/g, "").length)/"fr".length
JRS: In article <43654289$0$9481$636a15ce@news.free.fr>, dated Sun, 30
Oct 2005 22:00:41, seen in news:fr.comp.lang.javascript, Pierre =?ISO-
8859-15?Q?Génieys?= <p_geni.?.?.?@yahoo.fr> posted :
J'essaie de compter le nombre d'occurence de 'fr'
dans la phrase 'fr et france franchit les frames de free';
Selon les navigateurs fireFox et Opera la longuer du tableau
myarr est 6
donc on trouve 5 fois la chaine 'fr'
Si "fr" est au commencement ou au termination du String, doit-il etre
apres .split("fr") une premiere or derniere element "" ? Pour
quelques browser-auteurs, oui; pour autres, non.
mais selon IE myarr ne compte que 5 éléments
est ce normal que la fonction split ait un comportement
différent selon les navigateurs?
y a-t-il une autre façon de compter le nombre d'une
sous chaine dans une autre.
Oui.
St = 'fr et france franchit les frames de free'
No = St.length - St.replace(/fr/g, "*").length
ou No = (St.length - St.replace(/fr/g, "").length)/"fr".length
JRS: In article <43654289$0$9481$, dated Sun, 30 Oct 2005 22:00:41, seen in news:fr.comp.lang.javascript, Pierre =?ISO- 8859-15?Q?Génieys?= <p_geni.?.?.?@yahoo.fr> posted :
J'essaie de compter le nombre d'occurence de 'fr' dans la phrase 'fr et france franchit les frames de free'; Selon les navigateurs fireFox et Opera la longuer du tableau myarr est 6 donc on trouve 5 fois la chaine 'fr'
Si "fr" est au commencement ou au termination du String, doit-il etre apres .split("fr") une premiere or derniere element "" ? Pour quelques browser-auteurs, oui; pour autres, non.
mais selon IE myarr ne compte que 5 éléments est ce normal que la fonction split ait un comportement différent selon les navigateurs?
y a-t-il une autre façon de compter le nombre d'une sous chaine dans une autre.
Oui.
St = 'fr et france franchit les frames de free' No = St.length - St.replace(/fr/g, "*").length ou No = (St.length - St.replace(/fr/g, "").length)/"fr".length
JRS: In article <4367cc80$0$62968$ t>, dated Tue, 1 Nov 2005 20:13:53, seen in news:fr.comp.lang.javascript, le testeur singlé <p_geni.?.?.?@yahoo.fr> posted :
Dr John Stockton wrote:
Mais combien des "ee" y a-t-il en "Creee"?
si j'ai bien compris la question 2 ou 3:
je créé
La cerise est créée
Pas bien compris, helas. "ee" != "e"s ; "ee" > "e".
Il-y-a en String "Creee" trois "e", sans doute; mais, pour "ee", apres on a trouve la premiere "ee" ("Cr ee e"), faut-il chercher une deuxieme "ee" apres "Cre" ou apres "Cree" ? Peut-etre qu'oui; peut-etre qu'non. Quelquefois oui, quelquefois non.
JRS: In article <4367cc80$0$62968$892e7fe2@authen.white.readfreenews.ne
t>, dated Tue, 1 Nov 2005 20:13:53, seen in
news:fr.comp.lang.javascript, le testeur singlé <p_geni.?.?.?@yahoo.fr>
posted :
Dr John Stockton wrote:
Mais combien des "ee" y a-t-il en "Creee"?
si j'ai bien compris la question 2 ou 3:
je créé
La cerise est créée
Pas bien compris, helas. "ee" != "e"s ; "ee" > "e".
Il-y-a en String "Creee" trois "e", sans doute; mais, pour "ee", apres
on a trouve la premiere "ee" ("Cr ee e"), faut-il chercher une deuxieme
"ee" apres "Cre" ou apres "Cree" ? Peut-etre qu'oui; peut-etre qu'non.
Quelquefois oui, quelquefois non.
JRS: In article <4367cc80$0$62968$ t>, dated Tue, 1 Nov 2005 20:13:53, seen in news:fr.comp.lang.javascript, le testeur singlé <p_geni.?.?.?@yahoo.fr> posted :
Dr John Stockton wrote:
Mais combien des "ee" y a-t-il en "Creee"?
si j'ai bien compris la question 2 ou 3:
je créé
La cerise est créée
Pas bien compris, helas. "ee" != "e"s ; "ee" > "e".
Il-y-a en String "Creee" trois "e", sans doute; mais, pour "ee", apres on a trouve la premiere "ee" ("Cr ee e"), faut-il chercher une deuxieme "ee" apres "Cre" ou apres "Cree" ? Peut-etre qu'oui; peut-etre qu'non. Quelquefois oui, quelquefois non.
var grp = 'fr'; var str = 'fr et france franchit les frames de free'; var pattern = new RegExp(grp); var myarr = str.split(pattern);
Tiens ? Pourquoi passer par une RegExp alors que la fonction split prend une chaîne comme argument ?
var myarr = 'fr et france franchit les frames de free'.split('fr');
Toutafé, avec une variante qui marche tout le temps: on rajoute qcquechose en début et fin de chaîne et le nombre d'occurences est donné (toujours) par "tab.length - 1".
Exemple:
var chaine = 'fr et france franchit les frames de free';
var str = "_"+ chaine +"_"; var myarr = str.split('fr');
alert('nb occ = '+ (myarr.length-1));
Sans avoir tester avec tous, je pense que ce code est multi-navigateurs...
-- Cordialement, Thierry ;-)
var grp = 'fr';
var str = 'fr et france franchit les frames de free';
var pattern = new RegExp(grp);
var myarr = str.split(pattern);
Tiens ? Pourquoi passer par une RegExp alors que la fonction split
prend une chaîne comme argument ?
var myarr = 'fr et france franchit les frames de free'.split('fr');
Toutafé, avec une variante qui marche tout le temps: on rajoute
qcquechose en début et fin de chaîne et le nombre d'occurences est donné
(toujours) par "tab.length - 1".
Exemple:
var chaine = 'fr et france franchit les frames de free';
var str = "_"+ chaine +"_";
var myarr = str.split('fr');
alert('nb occ = '+ (myarr.length-1));
Sans avoir tester avec tous, je pense que ce code est
multi-navigateurs...
var grp = 'fr'; var str = 'fr et france franchit les frames de free'; var pattern = new RegExp(grp); var myarr = str.split(pattern);
Tiens ? Pourquoi passer par une RegExp alors que la fonction split prend une chaîne comme argument ?
var myarr = 'fr et france franchit les frames de free'.split('fr');
Toutafé, avec une variante qui marche tout le temps: on rajoute qcquechose en début et fin de chaîne et le nombre d'occurences est donné (toujours) par "tab.length - 1".
Exemple:
var chaine = 'fr et france franchit les frames de free';
var str = "_"+ chaine +"_"; var myarr = str.split('fr');
alert('nb occ = '+ (myarr.length-1));
Sans avoir tester avec tous, je pense que ce code est multi-navigateurs...
-- Cordialement, Thierry ;-)
Pierre G
Cenekemoi wrote:
Toutafé, avec une variante qui marche tout le temps: on rajoute qcquechose en début et fin de chaîne et le nombre d'occurences est donné (toujours) par "tab.length - 1".
Ok, c'est une bonne idée. mais côté performances...
est ce plus rapide d'utiliser un match ( /fr/g ) ou un split (/fr/) ? Pierre.
Toutafé, avec une variante qui marche tout le temps: on rajoute
qcquechose en début et fin de chaîne et le nombre d'occurences est donné
(toujours) par "tab.length - 1".
Ok, c'est une bonne idée.
mais côté performances...
est ce plus rapide d'utiliser un match ( /fr/g ) ou un split (/fr/) ?
Pierre.
Toutafé, avec une variante qui marche tout le temps: on rajoute qcquechose en début et fin de chaîne et le nombre d'occurences est donné (toujours) par "tab.length - 1".
Ok, c'est une bonne idée. mais côté performances...
est ce plus rapide d'utiliser un match ( /fr/g ) ou un split (/fr/) ? Pierre.
Toutafé, avec une variante qui marche tout le temps: on rajoute qcquechose en début et fin de chaîne et le nombre d'occurences est donné (toujours) par "tab.length - 1".
Ok, c'est une bonne idée. mais côté performances...
est ce plus rapide d'utiliser un match ( /fr/g ) ou un split (/fr/) ? Pierre.
Franchement, à moins que tu en aies des centaines à faire, je ne pense pas que cela influe beaucoup.
Sinon, le meilleur moyen de savoir est de tester... ;-)
-- Cordialement, Thierry
Cenekemoi wrote:
Toutafé, avec une variante qui marche tout le temps: on rajoute
qcquechose en début et fin de chaîne et le nombre d'occurences est
donné (toujours) par "tab.length - 1".
Ok, c'est une bonne idée.
mais côté performances...
est ce plus rapide d'utiliser un match ( /fr/g ) ou un split
(/fr/) ? Pierre.
Franchement, à moins que tu en aies des centaines à faire, je ne pense
pas que cela influe beaucoup.
Sinon, le meilleur moyen de savoir est de tester... ;-)
Toutafé, avec une variante qui marche tout le temps: on rajoute qcquechose en début et fin de chaîne et le nombre d'occurences est donné (toujours) par "tab.length - 1".
Ok, c'est une bonne idée. mais côté performances...
est ce plus rapide d'utiliser un match ( /fr/g ) ou un split (/fr/) ? Pierre.
Franchement, à moins que tu en aies des centaines à faire, je ne pense pas que cela influe beaucoup.
Sinon, le meilleur moyen de savoir est de tester... ;-)
-- Cordialement, Thierry
Dr John Stockton
JRS: In article <4369091c$0$23498$ t>, dated Wed, 2 Nov 2005 18:44:44, seen in news:fr.comp.lang.javascript, Pierre Génieys <p_geni.?.?.?@yahoo.fr> posted :
Ok, c'est une bonne idée. mais côté performances...
est ce plus rapide d'utiliser un match ( /fr/g ) ou un split (/fr/) ?
Essayez-vous comme ca :-
S = "fr..fr..fr..fr....fr......fr..fr" ; var J, K = 10000, D1, D2, D3 D1 = new Date() J = K ; while (J--) L1 = (S.length - S.replace(/fr/g, "").length)/2 D2 = new Date() J = K ; while (J--) L2 = ("-"+S+"-").split("fr").length - 1 D3 = new Date()
X = [D2-D1, D3-D2, " ", L1, L2]
PII/300, js-quick.htm : Moi, je trouve X = 980,1760, ,7,7 . QED.
JRS: In article <4369091c$0$23498$892e7fe2@authen.white.readfreenews.ne
t>, dated Wed, 2 Nov 2005 18:44:44, seen in
news:fr.comp.lang.javascript, Pierre Génieys <p_geni.?.?.?@yahoo.fr>
posted :
Ok, c'est une bonne idée.
mais côté performances...
est ce plus rapide d'utiliser un match ( /fr/g ) ou un split (/fr/) ?
Essayez-vous comme ca :-
S = "fr..fr..fr..fr....fr......fr..fr" ;
var J, K = 10000, D1, D2, D3
D1 = new Date()
J = K ; while (J--) L1 = (S.length - S.replace(/fr/g, "").length)/2
D2 = new Date()
J = K ; while (J--) L2 = ("-"+S+"-").split("fr").length - 1
D3 = new Date()
X = [D2-D1, D3-D2, " ", L1, L2]
PII/300, js-quick.htm : Moi, je trouve X = 980,1760, ,7,7 . QED.
JRS: In article <4369091c$0$23498$ t>, dated Wed, 2 Nov 2005 18:44:44, seen in news:fr.comp.lang.javascript, Pierre Génieys <p_geni.?.?.?@yahoo.fr> posted :
Ok, c'est une bonne idée. mais côté performances...
est ce plus rapide d'utiliser un match ( /fr/g ) ou un split (/fr/) ?
Essayez-vous comme ca :-
S = "fr..fr..fr..fr....fr......fr..fr" ; var J, K = 10000, D1, D2, D3 D1 = new Date() J = K ; while (J--) L1 = (S.length - S.replace(/fr/g, "").length)/2 D2 = new Date() J = K ; while (J--) L2 = ("-"+S+"-").split("fr").length - 1 D3 = new Date()
X = [D2-D1, D3-D2, " ", L1, L2]
PII/300, js-quick.htm : Moi, je trouve X = 980,1760, ,7,7 . QED.