javascript - 我在这里做错了什么?我正在尝试添加逗号以每三位数分组
问题描述
我正在尝试为 Twitch Bot 更改一些 Javascript。这段代码查找包含文本“(points)”的请求,然后将该文本替换为用户拥有的实际点数。目前,它正在获取用户的忠诚度积分并将其直接发布到聊天中,而无需在每组三位数字中添加逗号(例如,1,000,000 被发布为 1000000。)
默认情况下,代码如下所示:
if (message.match(/\(points\)/g)) {
message = $.replace(message, '(points)', $.getUserPoints(event.getSender()));
}
我知道这是从消息中获取“(点)”,然后使用函数getUserPoints
将其替换为请求用户拥有的点数。
我试过的是这个,它可能很接近,它可能不在附近,我还在学习 Javascript,所以请原谅我。
if (message.match(/\(points\)/g)) {
var retrievedPoints = $.getUserPoints(event.getSender());
retrievedPoints.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
message = $.replace(message, '(points)', retrievedPoints);
}
从我的角度来看,我将getUserPoints
函数调用从替换函数中取出,将其声明为变量retrievedPoints
,然后对这个新变量执行正则表达式,然后用这个新的逗号替换原始消息中的“(点)”点文本。
这正在通过机器人的 Javascript 错误检查(如果它检测到 Javascript 代码中的任何错误,机器人将不会运行),但它仍然返回“1000000”而不是“1,000,000”,就像我想要的那样。
我知道我.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
是正确的,因为这个机器人有几种提取相同数据的方法。这段代码特别是来自用户自定义命令的“customCommands.js”文件,还有另一个名为“pointsSystem.js”的文件,我已经设法用上面的代码整理出来,但这一个我正在努力上。另一个文件使用了一个简单的 return 语句,所以它只是一个附加上面代码的例子。
我不认为它是相关的,但它可能会有所帮助,功能getUserPoints
似乎是这样的:
function getUserPoints(username) {
return ($.inidb.exists('points', username.toLowerCase()) ? parseInt($.inidb.get('points', username.toLowerCase())) : 0);
};
解决方案
推荐阅读
- java - Firebase - 新依赖项 - 问题:NoClassDefFoundError:解析失败(QueryListenOptions)
- python - 定义一个使用函数内部列表范围的函数
- r - 向配对图添加箭头
- spring-boot - Spring boot + spring数据依赖不起作用
- jhipster - Jhipster 用户朋友自我关系
- r - 如何使用一个变量连续填充 ggplot2 条形图
- image - 之后我安装了一个 ssl,图像滑块不起作用
- python - 如何在 setup.py 中指定括号依赖项?
- python - 忽略shell脚本中的特定文件for循环
- c# - Selenium C# ElementNotVisibleException:元素不可交互,但该元素实际上是可见的