首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取特定不一致角色的名称?

如何获取特定不一致角色的名称?
EN

Stack Overflow用户
提问于 2019-11-11 22:52:29
回答 1查看 407关注 0票数 1

我正在尝试为我的服务器与许多国际用户的机器人。我们经常遇到的一个问题是协调时间,因为我们在世界各地。我想让这个机器人能够告诉你某个特定用户的时间。我已经让我的所有用户都有一个"UTC-10到+14“格式的角色,表示他们所在的时区。我已经有一个函数,当你给它一个UTC偏移量时,它会给你那里的时间。我的问题是,如何获得给定姓名的人的UTC偏移量。例如,我有一个角色为UTC-05的用户@User1#0000。他们也可能有其他角色(不是时区角色)。我如何才能让那些只给了他们名字的人的角色中的-05呢?

EN

回答 1

Stack Overflow用户

发布于 2019-11-11 23:43:50

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

代码语言:javascript
复制
let utcRole = member.roles.find(role => role.name.startsWith('UTC'))

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

代码语言:javascript
复制
let utcRole = member.roles.find(role => role.name.startsWith('UTC'))

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

这就对了!你会得到你想要的偏移量,现在要记住的一件重要的事情是,你有一个字符串形式的偏移量,根据你所说的,你将把它用作一个数字,在javascript中,我们使用parseInt()将字符串转换为数字,所以要将它转换为数字,

代码语言:javascript
复制
let number = parseInt(offset)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58803698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档