Discord.js 识别链接中的部件并在嵌入中重新格式化

Discord.js 识别链接中的部件并在嵌入中重新格式化,discord.js,Discord.js,我试图创建一个命令,从链接中标识站点名和用户名。例如,使用!链接https://en.wikipedia.org/wiki/User:Example,!链接https://en.wikipedia.org/wiki/Special:Contributions/Example,或!链接https://en.wikipedia.org/wiki/User_talk:Example将创建一个 const embed = new Discord.MessageEmbed() .setColor('#bf

我试图创建一个命令,从链接中标识站点名和用户名。例如,使用
!链接https://en.wikipedia.org/wiki/User:Example
!链接https://en.wikipedia.org/wiki/Special:Contributions/Example
,或
!链接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)
此外,如果链接中没有
用户:
特殊:贡献/
、或
用户对话:
、网站名(例如
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
,用户名也应解释为
示例
,而不是
示例?useskin=vector


我如何才能做到这一点?

url必须包含所有这些元素,还是只有一个?是的,命令中的url必须包含带有/wiki的站点名称(例如
en.wikipedia.org/wiki
www.mediawiki.org/wiki
en.wiktionary.org/wiki
,等等)。wiki的url可以是其中的任何一个,只要它在站点名称后面有
/wiki
。它还必须在同一链接中包含用户名。例如,
https://en.wikipedia.org/wiki/Special:Contributions/Example
就是一个例子。