Node.js 机器人从消息中提取链接

Node.js Bot pulling links out of messages

我正在 node.js 中为 Discordapp.com 创建一个机器人,它将从 Steam 配置文件的 xml 中提取信息。它从用户消息中获取配置文件 links。

我很难找到一种方法让我的机器人从消息中提取 link,因为它们不一致。

消息可能如下所示:

http://steamcommunity.com/profiles/76562119803123205611 look at that guys

Take a look at this www.steamcommunity.com/id/someusername/

look at this steamcommunity.com/profiles/766119803232061 looks cool right?

唯一一致的是“http://steamcommunity.com/”,其他的都不一样。关于如何仅从每条消息中提取整个 link 而没有其他任何内容,我能否得到一些帮助?

这是正则表达式的好地方。这是一个将匹配任何 steamcommunity.com URL 与 /profiles/ 后跟数字和 /id/ 后跟字符的匹配。

var test = "www.steamcommunity.com/id/someusername/";
var regexp = new RegExp("(steamcommunity.com)(/id/[a-z]+|(/profiles/(\d)+))", "i");
var out = test.match(regexp)[0];