首页 > 解决方案 > 将计数项添加到字符串替换器 node.js

问题描述

下面的代码有效,但我不确定如何在代码中添加计数器。它完美地替换了它找到的所有实例,但我怎样才能得到它在字符串中找到的所有项目的总数?这是我一直在处理的聊天脚本的一部分,我想将文本转换为笑脸,这样我就可以限制人们可以进入聊天的笑脸数量。这是我正在搞乱的代码。

let look = convertToSmilies(MessageString);
var MessageString = look;

功能

function convertToSmilies(MessageString) {
        var replaceall = require("replaceall");
        var fltr = MessageString;
        fltr = replaceall(">:D<", "", fltr);
        fltr = replaceall(":C", "☹️", fltr);
        fltr = replaceall("O:-)", "", fltr);
        fltr = replaceall("}:-)", "", fltr);
        MessageString = fltr;
        return MessageString;
};

我什至不确定这是为聊天室处理笑脸的最佳方式,因为我省略了代码中的负载,只是为了使其更短以便于阅读。我也不确定这样做是否会减慢聊天速度,因为它必须在字符串上进行所有搜索?

标签: javascriptnode.js

解决方案


尝试使用函数替换字符串

function convertToSmilies(MessageString) {

    var counter = 0
    MessageString = MessageString.replace(/>:D</gm, function(){
         counter++;     
         return "";
    });

    MessageString = MessageString.replace(/C/gm, function(){
         counter++;     
         return "☹️"
    });

    MessageString = MessageString.replace(/O:-\)/gm, function(){
         counter++;     
         return "";
    });

    MessageString = MessageString.replace(/}:-\)/gm, function(){
         counter++;     
         return "";
    });
    return MessageString;
};

推荐阅读