javascript - 如何获取特定 Discord 角色的名称?

标签 javascript node.js datetime discord discord.js

我正在尝试为我的服务器创建一个有许多国际用户的机器人。我们经常遇到的一个问题是协调时间,因为我们遍布世界各地。我想让这个机器人能够告诉你特定用户的时间。我已经让我的所有用户都有一个格式为“UTC[-10 到 +14]”的 Angular 色,表示他们所在的时区。我已经有了这样的功能,当你给它一个 UTC 偏移量时,它会给你那里的时间。我的问题是,如何获取某人姓名的 UTC 偏移量。 例如,我有一个用户 @User1#0000,其 Angular 色为 UTC-05。他们还可能具有其他 Angular 色(不是时区 Angular 色)。我怎样才能从刚刚给出名字的某人 Angular 色中得到-05

最佳答案

首先,要获取成员的 Angular 色,您只需使用 roles 属性 member,现在要获取时区 Angular 色,您可以使用 .find 函数 collection具有并在 Angular 色名称开头查找“UTC”,

let utcRole = member.roles.find(role => role.name.startsWith('UTC'))

现在,更困难的部分是解析 Angular 色名称以获取其偏移量,我们可以使用正则表达式和匹配函数来做到这一点,我们想要隔离 +14,用于隔离它的正则表达式将是 [\+\-][0-9]*[^\[\]],因此将其添加到我们的 sudo 代码中,

let utcRole = member.roles.find(role => role.name.startsWith('UTC'))

let offset = utcRole.name.match(/[\+\-][0-9]*[^\[\]]/)[0]

我们开始吧!你将获得你想要的偏移量,现在要记住的一件重要的事情是,你将偏移量作为字符串,并且根据你所说的,你将使用它作为数字,为了在 javascript 中将字符串转换为数字,我们使用 parseInt(),因此要将其转换为数字,

let number = parseInt(offset)

关于javascript - 如何获取特定 Discord 角色的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58803698/

相关文章:

python - 在 python 中执行 get_dummy 时,每个日期仅保留一行

javascript - 在 swagger 文档中实现 void

node.js - 如何防止 node.js 崩溃?尝试捕捉不起作用

.net - 如何将 Vb.net 中的日期时间四舍五入到最接近的 5 分钟

javascript - nodejs 使用回调和事件

node.js - 在 Express/ejs 中添加 View

mysql - 减去日期时间以在 MySQL 中获取天数和小时数

javascript - JavaScript-图像 slider 按钮不起作用

javascript - Google 脚本 - 使用第 x 行作为标题

javascript - 单击时向下滚动功能