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

3

我有一个问题,关于将文本链接转换为超链接。我通过使用这个链接中的代码成功地完成了它:如何将普通URL替换为链接?

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

这个可行!!!

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>"); 
}

输入文本

"https://dev59.com/j0bRa4cB1Zd3GeqP2anE";

输出:

<a href='https://dev59.com/j0bRa4cB1Zd3GeqP2anE'>stackoverflow.com</a>

这里有一个可用的JsFiddle


是的,它在某种程度上有效,但如果我有www.mywebsite.com/blabla链接。那么它只会获取“www.mywebsite”而已.... :( - wicky439
我可以只有网站名吗?就像仅有“Stackoverflow”一样,无论它是否有www......任何帮助都将不胜感激。 - wicky439
它只能转换短链接。对于长链接,它会在输出时出现错误。例如:mywebsite.com/jhdkhdhkjhdkjhdkhdkhdkhkhdkdhkhdkhdkhkdhkjdhkjhdkhdkhdkhkdhkdhd - wicky439

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接