String.prototype.linkify = function() {
this.replace(/((ht|f)tp:\/\/)?([^:\/\s]+)\w+.(com|net|org)/gi, '<a href="$&">$&</a>')
}
與http://www.google.com http://yahoo.com www.facebook.com
它匹配它們所有,但是我希望Facebook在協議組前面加上,如果它不存在。有沒有辦法做到這一點,而不做兩個.replace
?javascript正則表達式來解析沒有協議的網址
:你的正則表達式會怎樣?另外,你能解釋一下匿名函數中的參數替換嗎? –
參數僅爲$&,$ 1,$ 2。我一般認爲匹配URL的好方法不在這個問題的範圍內,因爲它實際上是一個相當困難的問題。簡而言之,我將首先列出所有頂級域名(TLD)的完整列表,然後匹配以TLD結尾的內容,並在各方都有各種絨毛(一旦您意識到必須從頂級域名(TLD)開始就更容易了)。 –