javascript - 将计数项添加到字符串替换器 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;
};
我什至不确定这是为聊天室处理笑脸的最佳方式,因为我省略了代码中的负载,只是为了使其更短以便于阅读。我也不确定这样做是否会减慢聊天速度,因为它必须在字符串上进行所有搜索?
解决方案
尝试使用函数替换字符串
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;
};
推荐阅读
- tabulator - 制表符 - CSV 到 JSON
- sql - MS Access Query:如何在从某个日期期间开始的重复日期之间求和
- python - Python比较不同的时间值以获得以分钟为单位的时间增量
- python - 如何计算我输入的一系列数字的中位数?
- c# - Azure blobstorage sas 密钥在 Angular 应用程序中不安全
- sql - 对 RDBMS (SQL) 数据库进行分片
- xamarin.forms - 通过 USB 对笔记本电脑不可见的外部存储文件
- r - 在列表上应用应用函数
- database-design - Mysql 数据库设计销售报告
- asp.net - 如何生成包含登录用户 ID 的连接字符串