par
totoche » 02 avr. 2007, 12:48
Bonjour à tous,
Ayant beaucoup d'éléments à remplacer, je souhaite utiliser la fonction replace() avec des variables. J'ai utilisé un tableau, et une boucle pour que celui soit reconnu comme une variable (les tableaux ne fonctionnent pas).
J'ai le code suivant :
Code : Tout sélectionner
function convertTags(myString)
{
var brut = new Array("[B]", "[/B]", "[I]", "[/I]", "[U]", "[/U]", "[S]", "[/S]", "[b]", "[/b]", "[i]", "[/i]", "[u]", "[/u]", "[s]", "[/s]");
var remplacement = new Array("<b>", "</b>", "<i>", "</i>", "<u>", "</u>", "<s>", "</s>", "<b>", "</b>", "<i>", "</i>", "<u>", "</u>", "<s>", "</s>");
var smileysbrut = new Array(';)',':)',':(',':p',':d',":\'(",':o',':*',':!',':c','8-)','0-)',':x',":\$",':ambivalent:',':angry:',':arg:',':fou:',':grin:',':heart:',':naughty:',':nerd:',':sarcastic:',':sick:',':yuck:',':yum:',':thumbsdown:',':thumbsup:');
var smileysremplacement = new Array('wink.gif','smile.gif','sad.gif','razz.gif','laugh.gif','larmes.gif','shocked.gif','kiss.gif','gaffe.gif','confused.gif','cool.gif','innocent.gif','sealed.gif','moneymouth.gif','2ambivalent.png','2angry.png','2confused.png','2crazy.png','2grin.png','2heart.png','2naughty.png','2nerd.png','2sarcastic.png','2sick.png','2yuck.png','2yum.png','2thumbsdown.png','2thumbsup.png');
t = remplacement.length;
u = smileysremplacement.length;
j = 0;
while(j<t)
{
var bru = brut[j];
var rep = remplacement[j];
myString = myString.replace(bru, rep);
j++;
}
k = 0;
while(k<u)
{
var sbru = smileysbrut[k];
var srep = smileysremplacement[k];
myString = myString.replace(sbru, "<img src=\"/images/smileys/" + srep + "\">");
k++;
}
Le problème, c'est que avec une variable en premier argument, je ne peux pas mettre les flags g et i, pour que la casse ne soit pas prise en compte et que le remplacement s'effectue à chaque occurrence (actuellement, pour plusieurs smileys identiques, seul le premier est remplacé par son image correspondante).
Auriez-vous une idée de comment faire ?
Merci beaucoup

Bonjour à tous,
Ayant beaucoup d'éléments à remplacer, je souhaite utiliser la fonction replace() avec des variables. J'ai utilisé un tableau, et une boucle pour que celui soit reconnu comme une variable (les tableaux ne fonctionnent pas).
J'ai le code suivant :
[code]
function convertTags(myString)
{
var brut = new Array("[B]", "[/B]", "[I]", "[/I]", "[U]", "[/U]", "[S]", "[/S]", "[b]", "[/b]", "[i]", "[/i]", "[u]", "[/u]", "[s]", "[/s]");
var remplacement = new Array("<b>", "</b>", "<i>", "</i>", "<u>", "</u>", "<s>", "</s>", "<b>", "</b>", "<i>", "</i>", "<u>", "</u>", "<s>", "</s>");
var smileysbrut = new Array(';)',':)',':(',':p',':d',":\'(",':o',':*',':!',':c','8-)','0-)',':x',":\$",':ambivalent:',':angry:',':arg:',':fou:',':grin:',':heart:',':naughty:',':nerd:',':sarcastic:',':sick:',':yuck:',':yum:',':thumbsdown:',':thumbsup:');
var smileysremplacement = new Array('wink.gif','smile.gif','sad.gif','razz.gif','laugh.gif','larmes.gif','shocked.gif','kiss.gif','gaffe.gif','confused.gif','cool.gif','innocent.gif','sealed.gif','moneymouth.gif','2ambivalent.png','2angry.png','2confused.png','2crazy.png','2grin.png','2heart.png','2naughty.png','2nerd.png','2sarcastic.png','2sick.png','2yuck.png','2yum.png','2thumbsdown.png','2thumbsup.png');
t = remplacement.length;
u = smileysremplacement.length;
j = 0;
while(j<t)
{
var bru = brut[j];
var rep = remplacement[j];
myString = myString.replace(bru, rep);
j++;
}
k = 0;
while(k<u)
{
var sbru = smileysbrut[k];
var srep = smileysremplacement[k];
myString = myString.replace(sbru, "<img src=\"/images/smileys/" + srep + "\">");
k++;
}
[/code]
Le problème, c'est que avec une variable en premier argument, je ne peux pas mettre les flags g et i, pour que la casse ne soit pas prise en compte et que le remplacement s'effectue à chaque occurrence (actuellement, pour plusieurs smileys identiques, seul le premier est remplacé par son image correspondante).
Auriez-vous une idée de comment faire ?
Merci beaucoup :)