重写图像URL以安全地提供服务

时间:2015-01-08 21:34:00

标签: javascript regex node.js

我发现了以下正则表达式。鉴于我对如何使用正则表达式完全无能为力,有人可以帮我指点组合它们的写作方向吗?

(/!\[([\S\s]*?)\]\(http:\/\/(\S*?)\)/, '![$1](https://$2)')

此正则表达式将重写http:// URL以通过https://提供服务 由于我们链接到的网站存在一些问题,因此我们希望确保不是重写每个网址,而是通过https://来提供直接提供给图片的链接。

我发现这个正则表达式似乎检查了URL是图像

/^https?:\/\/(?:[a-z0-9\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:jpe?g|gif|png|bmp)‌​$/i

如何组合这些?

1 个答案:

答案 0 :(得分:0)

我不熟悉您在Node.js中使用的语法,但这里可能有效的正则表达式(格式与您的第一个示例相同)。

(/^http:\/\/((?:[a-z0-9\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:jpe?g|gif|png|bmp)‌)​$/i, 'https://$1')

你的第一个正则表达式似乎专门处理类似markdown的格式。你的第二个正则表达式实际上相当不错(甚至可能比必要的更复杂),所以我使用了它的大部分内容。