如何从数组中替换字符串

时间:2010-09-05 18:37:01

标签: javascript regex string backslash

我正在编写一段代码,使用正则表达式在聊天中对表情符号进行查找/替换。但是,我想使用相同的值数组并将它们作为参考输出。

正则表达式适用于我的搜索,但是当我输出正则表达式搜索字符串替换之前我输出它作为我的帮助时,我仍然最终得到一个斜杠。

:\)
:\(

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;
}

1 个答案:

答案 0 :(得分:3)

您的问题是str.replace不会更改原始变量,而是返回一个新变量。试试这个:

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;
}