javascript - 适用于所有 Discord 标签类型的正则表达式模式

标签 javascript regex discord.js

正在进行一些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 个。

最佳答案

Looks like (regexr.com link)

<((@!?\d+)|(:.+?:\d+))>

应该可以解决问题。

关于javascript - 适用于所有 Discord 标签类型的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51519474/

相关文章:

javascript - Discord.JS 录音和数据压缩

javascript - 如何使用变量字段名增加mongodb字段?

javascript - 在 angular2 rc4 问题中找不到 RouteConfig 函数(纯 JS)

javascript - 切换谷歌地图中的信息框

objective-c - NSString stringByReplacingOccurrencesOfRegex

php - 在文章引用中使用正则表达式进行模式匹配

javascript - Discord.js 机器人使用斜杠命令回复

javascript - 如何通过 jQuery 动态添加元素

javascript - Javascript 中的正则表达式对类别中的项目进行分组

javascript - 用户从开始时间起每 X 小时创建一次计划