2013-08-23 37 views
0

我有正確的正則表達式來查找文本中的URL,但有一件事我無法解決。 如果URL以DOT結尾 - 此點匹配爲url的一部分。正則表達式匹配URL與DOT結尾

這是我的模式:

/(^|[\?\s])(www\.[^\? ]+\/[^\/ ]*\?[^\? ]+|www\.[^\? ]+)/g 

爲樣本,文字'The url is www.domain.com. Second is wiki.org.'

的url最後一個點是不是URL的一部分,但正則表達式替換它。

JSFiddle

+0

發佈您當前的正則表達式,以便我們可以看到您正在嘗試的是什麼? – Martyn

+1

一個很好的閱讀:http://daringfireball.net/2010/07/improved_regex_for_matching_urls – georg

+0

@ thg435,這就是爲什麼使用URL的正則表達式是一個壞主意。 – OrangeDog

回答

0

最簡單的解決辦法是要求非標點字符作爲最後一個字符:

/(^|[?\s])(www\.[^? ]+\/[^/ ]*\?[^? ]*[^?.,! ]|www\.[^? ]*[^?.,! ])/g 

注意,我刪除了你的一些反斜槓,因爲他們是沒有必要的。

JSFiddle.

然而,這仍然是不穩健的URL模式。那麼,爲什麼重新發明輪子而不是僅僅使用some established URL pattern

+0

嗯,這可以修復點,但不是像「google.com,yahoo.com!」這樣的東西。 – georg

+0

@ thg435這實際上是真的......我修正了這一點,但我的答案的主要觀點實際上是這個解決方案也不健全,而且OP應該採用現有的解決方案。 –

+0

是的,我被添加到另一個飼料,其容易 – Dmitry