我有一个奇怪的问题正则表达式字符串替换在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