2013-10-21 70 views
2

我擁有一個爲我的客戶構建的簡單CMS。如何自動將文本網址封裝在錨定標記中

這個問題不在於他可能通過錨標籤發佈鏈接,他只是將其複製並直接粘貼到文本編輯器中。

是否有這些鏈接可以使用JavaScript封裝在錨標籤中。因此,當頁面加載,而不是尋找它的鏈接是:

http://google.com 

它看起來像這樣

<a href="http://google.com" target="_blank">http://google.com</a> 

UPDATE

#1真正做到這一點,當用戶帖子的URL的回答/問題(如果這有助於理解我想實現的目標)。

謝謝

+0

這是一個簡單的字符串連接。你有沒有嘗試過可以發佈在這裏供我們看的東西? – 2013-10-21 00:08:52

+0

我不太確定從哪裏開始。我在這裏閱讀了一篇文章,但它似乎影響腳本標記和嵌入標記中的URL。 –

+1

http://stackoverflow.com/questions/6168260/how-to-parse-a-url http://stackoverflow.com/questions/579335/javascript-regexp-to-wrap-urls-and-emails-in - 船錨 http://stackoverflow.com/questions/247479/jquery-text-to-link-script –

回答

1

你可以嘗試沿着這些線。裝點您要更換這些採取與像「linkify」一個布爾屬性效果的標籤:

<div linkify>something http://google.com something</div><div linkify>something</div> 

現在用linkify集中的任何元素內進行更換。

$('*[linkify]').each(function() 
        { 
         $(this).html($(this).html().replace(/(?:(https?\:\/\/[^\s]+))/m, 
                  '<a href="$1">$1</a>')); 
        }); 

有一些注意事項。這根本不是一個很好的正則表達式 - 它只是匹配從http://https://開始直到第一個空白字符的任何內容。尋找更好的URL匹配正則表達式。此外,使用替代.html()意味着它將打破任何現有的鏈接發生在你的linkify元素下!如果在文本鏈接中碰巧有雙引號字符,則會創建破壞的錨點元素。

你可能會考慮一種非常簡單的標記來識別鏈接 - 它會比猜測好得多。