Bonjour, j'ai des questions sur la rapidité de mon script pour des cas d'utilisations de regex :
1) Je dois créer une regex que je changerai plus tard, pour la création :
Quel est le plus rapide entre :
newRegExp()
/-/ on met n'importe quoi à l'intérieur
En temps normal, l'utilisation de slashes est plus rapide, mais si on n'indique aucun paramètres lors de la création ? Car avec les antislashes on est obliger d'y mettre quelque chose, sinon ça fait un commentaire
2) J'ai une boucle et un objet RegExp crée avec une des technique précédente, je dois modifier la regex à chaque passage de boucle...
Quel est le plus rapide entre :
créer un nouvel objet RegExp (avec raccourci des slashes) et l'assigner à la variable
recompiler la regex, à l'aide de la fonction RegExp.compile(str[, params])
Merci de vos réponses
PS : pour l'instant j'utilise : newRegExp()
et RegExp.compile(str[, params])
A moins que tu ne fasses plusieurs milliers de boucles, les temps sont identiques je pense.
Le mieux d'après moi est d'utiliser varmaReg=/une Regex/; et de garder newRegExp juste si on a une variable à mettre dans la reg.
Ensuite pour ta boucle, j'avoue ne pas connaitre .compile, j'ai toujours fait avec une nouvelle regex
Et créé une regex vide.. je n'en vois pas trop l'intérêt.
Edit:
var tmp;
var t1 = new Date();
for (var i = 0; i < 10000; i++) {
tmp = /nawak/;
tmp.test('nono');
}
/*******************************/
/*******************************/
var t2 = new Date();
for (var ii = 0; ii < 10000; ii++) {
tmp = new RegExp('nawak', '');
tmp.test('nono');
}
/*******************************/
/*******************************/
var t3 = new Date();
tmp = new RegExp();
for (var iii = 0; iii < 10000; iii++) {
tmp.compile('nawak', '');
tmp.test('nono');
}
/*******************************/
/*******************************/
var t4 = new Date();
document.write((t2 - t1) + '<br/>');
document.write((t3 - t2) + '<br/>');
document.write((t4 - t3) + '<br/>');
Merci, comme ça j'ai vu que je faisait tout ce qui ne fallait pas faire !
optimisation regex
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.