正在进行一些discord.js 机器人开发,我正在尝试创建一个正则表达式来过滤掉所有类型的discord 标签(又名标记用户和自定义表情)。我尝试了几种不同的方法,但没有一种方法可以解决所有情况。标签的 5 种主要样式是:
<@108012418998792192> (User)
<@!420279649055145996> (User)
<:oof:463391326491377674> (Emote without number in name)
<:Tyler1:311344841466576896> (Emote with number in name)
<:1234:123412314353463456> (Emote that just has number in name)
我遇到的主要问题之一是标签类型的多样性。如果您注意到一个用户的开头有 @!
,而另一个用户的开头只有 @
。表情则完全是另一回事,以 :ALPHA_NUMERIC:
开头。
这个机器人过滤了大量的消息,因此我试图使其尽可能高效和紧凑。
我尝试过做类似的事情
arg.replace(/<\D+\d+>/g, '').trim();
arg.replace(/<\D+\w+>/g, '').trim();
但未能过滤掉最后 2 个。
最佳答案
关于javascript - 适用于所有 Discord 标签类型的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51519474/