2010-09-05 4 views
1

Je travaille sur un morceau de code qui utilise des expressions regex pour faire une recherche/remplacement d'émoticônes dans une conversation. Cependant, je veux utiliser le même tableau de valeurs et les afficher en tant que référence. La regex fonctionne correctement pour mes recherches, mais lorsque j'ai essayé de faire un remplacement sur la chaîne de recherche regex avant de la sortir pour mon aide, je me retrouve toujours avec une barre oblique.Comment remplacer des chaînes à partir d'un tableau

:\) 
:\(

var emotes = []; 
emotes[0] = new Array(':\\\)', 'happy.png'); 
emotes[1] = new Array(':\\\(', 'sad.png'); 

function listEmotes(){ 
    var emotestext = ''; 
    for(var i = 0; i < emotes.length; i++){ 

     //Tried this and it doesn't seem to work 
     //var emote = emotes[i][0]; 
     //emote.replace('\\', ''); 

     emotestext += '<ul>' + emote + ' <img src="emotes/' + emotes[i][1] + '"></ul>'; 
    } 

    return emotestext; 
} 

Répondre

3

Votre problème est que str.replace ne change pas la variable d'origine, mais retourne à la place un nouveau. Essayez ceci:

var emotes = [ 
    [':\\\)', 'happy.png'], 
    [':\\\(', 'sad.png'] 
]; 

function listEmotes(){ 
    var emotestext = ''; 
    for(var i = 0; i < emotes.length; i++){ 
     var emote = emotes[i][0].replace('\\', ''); // See what I did here? 

     emotestext += '<ul>' + emote + ' <img src="emotes/' + emotes[i][1] + '"></ul>'; 
    } 

    return emotestext; 
} 
Questions connexes