Discord.js检查用户昵称是否包含数字和字母,如果是则对数字进行计算



我正在寻找一种方法来检查一个不和谐的用户名是否包含数字和某些字母,如果它是,然后应用计算到它。

例如,我有一个命令,现在检查用户的昵称中是否有任何内容,这将在前一个数字旁边添加额外的数字(如果有的话),如果他没有任何内容作为昵称,则使昵称为UserName - {number} PRs。我正在寻找一种方法a来检查用户是否在他们的名字中有{number} PRs,如果是,将multiplyNum计算添加到现有的数字并保留名称的其余部分。

module.exports = {
name: 'test',
cooldown: 1000,
run: async(client, message, args) => {
let member = message.mentions.members.first();
var multiplyNum = args[0] * ((100 - 50) / 100) * 0.23;
var finalNum = multiplyNum.toFixed(2);
let memberNick = member ? member.displayName : null;
if (member.nickname){
if(!member) return message.channel.send("Invalid User");
member.setNickname(`${memberNick}` + ", " + `${finalNum}` + " PRs");
}else{
if(!member) return message.channel.send("Invalid User");
member.setNickname(`${memberNick}` + " - " + `${finalNum}` + " PRs");
};
}

我认为应该这样做。你所要做的就是将昵称放入一个由空格分隔的数组中,如果最后一个键是pr,最后一个键-1是!NaN,则运行计算,否则什么都不做。

module.exports = {
name: 'test',
cooldown: 1000,
run: async(client, message, args) => {
let member = message.mentions.members.first();
var multiplyNum = args[0] * ((100 - 50) / 100) * 0.23;
var finalNum = multiplyNum.toFixed(2);
let memberNick = member ? member.displayName : null;
if (member.nickname){
if(!member) return message.channel.send("Invalid User");
member.setNickname(`${memberNick}` + ", " + `${finalNum}` + " PRs");
} else {
if(!member) return message.channel.send("Invalid User");
const nicknameAsArray = memberNick.split(" ");
var number = nicknameAsArray[nicknameAsArray.length - 2];
if (
nicknameAsArray[nicknameAsArray.length - 1] === "PRs" &&
!isNaN(Number(nicknameAsArray[nicknameAsArray.length - 2]))
) {
nicknameAsArray[nicknameAsArray.length - 2] = Number(number) * multiplyNum;
member.setNickname(nicknameAsArray.join(" "));
}
};
}
}

相关内容

最新更新