我發現這個JS上,這樣看起來會檢測包括經常鏈接和Twitter和#哈希標籤工作@使用者名稱這裏很大腳本:的Javascript正則表達式中刪除HTTP://和https://從文本
function processTweetLinks(text) {
text = text.replace();
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
text = text.replace(exp, "<a href='$1' target='_blank'>$1</a>");
exp = /(^|\s)#(\w+)/g;
text = text.replace(exp, "$1<a href='http://search.twitter.com/search?q=%23$2' target='_blank'>#$2</a>");
exp = /(^|\s)@(\w+)/g;
text = text.replace(exp, "$1<a href='http://www.twitter.com/$2' target='_blank'>@$2</a>");
console.log(text);
}
但是......第一個表達式不太適合我的需求......當它得到類似http://google.com
的東西時,它輸出<a href='http://google.com' target='_blank'>http://google.com</a>
。我希望它輸出<a href='http://google.com' target='_blank'>google.com</a>
而不是 - 基本上從錨標記中刪除http://
或https://
。我不知道正則表達式 - 爲了輸出這個函數,函數需要看起來像什麼?
更新:我得到的功能與@ BrunoFinelli的答案固定,這很好,但我不知道如何使它修復給定的字符串/消息中的多個鏈接。現在它只在每次調用函數時修復一個...如果任何人都可以調整函數來解決這個問題,那將非常感謝!謝謝!如果第一個正則表達式(有問題的)從錨標籤中刪除www.
也會很好。但實際上,我只需要知道如何通過可能有多個鏈接/提及/標籤的推文重複此操作。謝謝!
剛纔試了,它工作正常...'processTweetLinks('HTTP ://google.com')'產生'google.com' –
是的,它是完美的!只要我的新手眼睛可以看到它沒有錯!謝謝@BrunoFinelli!我所做的唯一小小的監督就是'www.',那麼也可以很好地將其刪除? – tylerl
我沒有意識到它只在每次運行時才被應用到一個鏈接......您能否修改您的答案,以便它可以修復給定字符串中的多個鏈接?謝謝! – tylerl