将文本链接转换为超链接和锚文本

时间:2013-12-03 18:18:33

标签: javascript html

我有一个关于将文本链接转换为超链接的问题。我使用此链接中的代码成功完成了它; How to replace plain URLs with links?

function replaceURLWithHTMLLinks(text) {
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
    return text.replace(exp,"<a href='$1'>$1</a>"); 
}

此代码的输出类似于;

Input: http://www.tinymoviez.com Output: <a href='http://www.tinymoviez.com'>http://www.tinymoviez.com</a>

现在我想要的是获取不是链接形式的锚文本,它应该没有'http://www.'

简而言之,我需要输出为

<a href='http://www.tinymoviez.com'>tinymoviez.com</a>

但请记住,它应该是自动的,我会一次转换大量的链接。

我该怎么做? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这有效!!!

function replaceURLWithHTMLLinks(text) {
    var exp = /(\b(http|ftp|https):\/\/([\w-]+\.[\w-]+)+([\w.,@?^=%&amp;:\/~+#-]*[\w@?^=%&amp;\/~+#-])?)/ig;
    return text.replace(exp,"<a href='$1'>$3</a>"); 
}

输入文字

"http://stackoverflow.com/questions/579335/javascript-regexp-to-wrap-urls-and-emails-in-anchors";

输出:

<a href='http://stackoverflow.com/questions/579335/javascript-regexp-to-wrap-urls-and-emails-in-anchors'>stackoverflow.com</a>

这是一个有效的JsFiddle