用超链接替换URLS

时间:2016-05-18 08:02:16

标签: javascript regex

我找到了以下功能:

function addHyperlinks(str) {
    // Set the regex string
    var regex = /(https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w\/_\.]*(\?\S+)?)?)?)/ig
    // Replace plain text links by hyperlinks
    var replaced_text = str.replace(regex, "<a href='$1' target='_blank'>$1</a>");
    // Echo link
    return replaced_text;
}

哪个有效,但是当URL中有破折号时,它会停止处理。例如,以下网址:

http://website.com/some-internet-page

将被替换为:

<a href='http://website.com/some'>http://website.com/some</a>-internet-page

我对正则表达式并不擅长,是否有人可以帮助修改上述内容以便不会发生这种情况?

1 个答案:

答案 0 :(得分:1)

@Tonny在上面的评论中说道:

/(HTTPS://([ - \ W-。] +)+(?:\ d +)(/([\ W - / _。] *(\ \ S +)))????? )/ IG

谢谢!