我正在尝试为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