我有一个关于将文本链接转换为超链接的问题。我使用此链接中的代码成功完成了它; 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>
但请记住,它应该是自动的,我会一次转换大量的链接。
我该怎么做? 任何帮助将不胜感激。
答案 0 :(得分:0)
这有效!!!
function replaceURLWithHTMLLinks(text) {
var exp = /(\b(http|ftp|https):\/\/([\w-]+\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?)/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