首页 > 解决方案 > 识别链接中的部分并在嵌入中重新格式化它们

问题描述

我正在尝试创建从链接中识别站点名称和用户名的命令。例如使用!link https://en.wikipedia.org/wiki/User:Example, !link https://en.wikipedia.org/wiki/Special:Contributions/Example, or!link https://en.wikipedia.org/wiki/User_talk:Example会创建一个嵌入

const embed = new Discord.MessageEmbed()
.setColor('#bf00ff')
.addTitle(`en.wikipedia.org`, [Wiki link](https://en.wikipedia.org/wiki/Main_Page))
.addField(`User info of Example`, `[Userpage](https://en.wikipedia.org/wiki/User:Example) | [User_talk](https://en.wikipedia.org/wiki/User_talk:Example) | [Logs](https://en.wikipedia.org/wiki/Special:Log/Example) | [User groups](https://en.wikipedia.org/wiki/Special:UserRights/Example) | [User contributions](https://en.wikipedia.org/wiki/Special:Contributions/Example) | [BlockLog](https://en.wikipedia.org/w/index.php?title=Special:Log/block&page=User:Example)
message.channel.send(embed)

此外,如果链接没有User:Special:Contributions/User_talk:、 以及站点名称(例如en.wikipedia.org)和其中的用户名,则创建错误消息。

如果链接包含用户名后面的 、 、 或 ,请忽略链接中的?useskin=monobook那些?useskin=vector部分?useskin=modern?useskin=apex例如,https://en.wikipedia.org/wiki/User_talk:Example?useskin=vector应该解释为https://en.wikipedia.org/wiki/User_talk:Example,用户名也应该解释为Example,而不是Example?useskin=vector

我怎么能做到这一点?

标签: discord.js

解决方案


推荐阅读