如何替换数组中的字符串

发布于 2024-09-17 06:09:16 字数 630 浏览 7 评论 0原文

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

正则表达式对于我的搜索效果很好,但是当我在输出它以获取帮助之前尝试对正则表达式搜索字符串进行替换时,我仍然会得到斜杠。

:\)
:\(

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

I'm working on a piece of code that uses regex expressions to do a find/replace for emoticons in a chat. However, I want to use the same array of values and output them as a reference.

The regex works fine for my searches, but when I tried to do a replace on the regex search string before I output it for my help, I still end up with a slash.

:\)
:\(

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北城半夏 2024-09-24 06:09:16

您的问题是 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;
}

Your problem is that str.replace doesn't change the original variable but instead returns a new one. Try this out:

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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文