50 giri non sono molti, percui se il browser si blocca è per qualcos'altro...
Dovresti dare più info...ad esempio cos'è img? come fai a combinare le diverse emo con le diverse img...
fai un esempio o metti il tuo codice....
cmq un esempio che ho scritto è questo:
codice:
emoticons = new Array(":)",";)",":D");
imgEmoticons = new Array("[img]img1.gif[/img]","[img]img2.gif[/img]","[img]img3.gif[/img]")
emoticons.toString = function(){
var myRE = "",L=this.length;
for(var i=0; i<L; i++)
myRE+=this[i].replace(/\)/gi,"\\)")+(i==L-1?"":"|");
return myRE;
}
emoticons.match = function(mtch){
for(var i=0; i<emoticons.length; i++)
if(emoticons[i].replace(/\\/gi,"")==mtch) return imgEmoticons[i];
return "";
}
// ESEMPIO:
testo = "hola! :) ciauz ;) una risata: :D:D:D";
alert(testo);
alert(testo.replace(new RegExp(emoticons,"gi"),emoticons.match));
Non so se è quello che cerchi, ma con questo tipo di codice,
puoi gestire i tuoi array liberamente senza modificare poi le chiamate.
Il problema è quello di scrivere bene le versioni di toString/match,
cercando di individuare caratteri significativi per le RegExp (come ")"), ma una volta fatto questo, l'interfaccia rimane molto semplice da usare e da modificare.
ciauz.
PS: il forum ovviamente mi cambia le stringhe con le emo, ma le faccine sono: ": )", "; )", ": D"