【问题标题】:Converting Text Link to Hyper Link and Anchor Text将文本链接转换为超链接和锚文本
【发布时间】:2013-12-03 18:18:32
【问题描述】:

我有一个关于将文本链接转换为超链接的问题。我通过使用此链接中的此代码成功地做到了; 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>

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

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

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    这行得通!!!

    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

    【讨论】:

    • 是的,它以某种方式工作,但如果我有 www.mywebsite.com/blabla 链接。然后它只会得到“www.mywebsite” Only.... :(
    • 我可以只有网站名称吗....像“Stackoverflow”一样,它是否有 www....任何帮助将不胜感激
    • 它只转换短链接。对于长链接,它会在输出时出错。喜欢 mywebsite.com/jhdkhdhkjhdkjhdkhdkhdkhkhdkdhkhdkhdkhkdhkjdhkjhdkhdkhdkhkdhkdhd
    猜你喜欢
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 2013-03-30
    • 2021-10-03
    • 2020-02-15
    • 1970-01-01
    相关资源
    最近更新 更多