我在这里做错了什么?我正在尝试添加逗号来对每三位数字进行分组

时间:2019-08-15 09:28:44

标签: javascript regex

我正在尝试为Twitch Bot更改一些Javascript。这段代码寻找包含文本“(点)”的请求,然后用用户实际拥有的点替换该文本。当前,它会获取用户的忠诚度积分并将其直接发布到聊天中,而不会在每个三位数中添加逗号(例如1,000,000被发布为1000000。)

默认情况下,代码如下:

var result = Regex.Replace(html,"<[^/>].*></[^>]+>", "");

我知道这是从消息中获取“(点)”,然后使用函数if (message.match(/\(points\)/g)) { message = $.replace(message, '(points)', $.getUserPoints(event.getSender())); } 将其替换为请求用户所拥有的点数。

我尝试过的是,它可能很近,可能没有了,我还在学习Javascript,所以请原谅我。

getUserPoints

从我的角度来看,我将if (message.match(/\(points\)/g)) { var retrievedPoints = $.getUserPoints(event.getSender()); retrievedPoints.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); message = $.replace(message, '(points)', retrievedPoints); } 函数调用从replace函数中移除,将其声明为变量getUserPoints,然后在替换“(points)之前对该新变量执行regex ”中的原始消息,其中包含此新的,逗号分隔的点文本。

这通过了bot的Javascript错误检查(如果bot检测到Javascript代码中的任何错误,它将无法运行),但它仍返回“ 1000000”而不是我想要的“ 1,000,000”。

我知道我的retrievedPoints是正确的,因为该机器人有几种提取相同数据的方法。这段代码特别来自用户自定义命令的“ customCommands.js”文件,还有一个名为“ pointsSystem.js”的文件,我已经设法通过上述代码进行整理,但是我正在努力上。另一个文件使用了一个简单的return语句,因此这只是添加上述代码的一种情况。

我认为这无关紧要,但这可能有所帮助,功能.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");似乎是这样的:

getUserPoints

0 个答案:

没有答案