0

我有一个用于检测链接的正则表达式,该链接对http://example.comhttp://www.example.com等形式的 URL 非常有效,但不适用于 www.example.com

我正在尝试扩展我拥有的内容,以便 www.foo.com 也得到匹配,而不会破坏以前的功能。

我试过这个:

/\(?\b((http|https|ftp):\/\/|)(www\.)[-A-Za-z0-9+&@#\/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#\/%=~_()|]/

但这仅在 www 存在且不适用于http://example.com时才有效...

4

2 回答 2

1

我相信我已经解决了这个问题。

我需要使http 和 wee 块都是可选的,并且我必须修改正则表达式以仅检测以 .com/.net 等结尾的内容,这样如果 http 和 www 都是可选的,我就不会只匹配字符串

这是有效的正则表达式:

 /\(?\b((http|https):\/\/)?(www\.)?[-A-Za-z0-9+&@#\/%?=~_()|!:,.;]*\.(com|net|co)\/?[-A-Za-z0-9+&@#\/%=~_()|]*/gi;
于 2013-10-23T04:08:41.123 回答
0

您需要像这样使 www 可选:

/\(?\b((http|https|ftp):\/\/|)(www\.)?[-A-Za-z0-9+&@#\/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#\/%=~_()|]/

通过添加“?” 在 (www.) 组之后,您可以将其设为可选

于 2013-10-23T03:50:51.923 回答