我有一個奇怪的問題正則表達式字符串替換在JavaScript中。我有這樣的正則表達式中可以包含多個網址(評論或交的,比如)一個要搜索的字符串的URL:JavaScript的URL搜索正則表達式
/(?:https?:\/\/|www\.)\S+/gi
但是我遇到了一個問題,它只會匹配一個URL ......除非沒有。它不穩定,但通常它只會匹配一個URL(不一定總是第一個)。以此字符串:
"Test
http://google.com
http://google.com
http://google.com"
它只會匹配第一個http://google.com
實例。
的最終目標是鏈接到替換的URL:
str = str.replace(/(?:https?:\/\/|www\.)\S+/gi, '<a href="$&" target="_blank">$&</a>');
我用這個來獲取被匹配什麼更好的主意,什麼是不:
function getMatches(re, str) {
var matches = [],
match;
while ((match = re.exec(str)) !== null) {
matches.push(match[0]);
}
return matches;
}
有人知道我在這裏做錯了什麼?
編輯:它看起來像有什麼有趣的事情與我的數據導致的問題。
我的錯誤,我實際上使用它,只是在問題中輸入錯誤。固定。 – coreyschram 2012-07-23 23:15:15