对不起,再次打扰你们,但这是我的困境。使用正则表达式从Javascript中的段落文本中提取1个或多个超链接
必须有一个“更好”的正则表达式来标识段落文本中的HTML链接(文本中可以有多个HTML链接)。我如何提取所有的链接,并在JavaScript中锚定它?
我尝试(在JavaScript)是这样的:
var urlPattern = "(https?|ftp)://(www\\.)?(((([a-zA-Z0-9.-]+\\.){1,}[a-zA-Z]{2,4}|localhost))|((\\d{1,3}\\.){3}(\\d{1,3})))(:(\\d+))?(/([a-zA-Z0-9-._~!$&'()*+,;=:@/]|%[0-9A-F]{2})*)?(\\?([a-zA-Z0-9-._~!$&'()*+,;=:/[email protected]]|%[0-9A-F]{2})*)?(#([a-zA-Z0-9._-]|%[0-9A-F]{2})*)?";
function extractURLs(s) {
return s.match(new RegExp(urlPattern));
}
//s is of type String
//For testing...
var text = "Check this video out http://ww w.youtube.com/watch?v=y3U3R3b1dOg or http://www.youtube.com/watch?v=sX6Vm0MoPCY";
alert(extractURLs(text));
(超链接的空间被刻意在这里添加到允许问题发布在SO)。 结果:我只得到第一个超链接而不是第二个...... 有没有人做过类似或更好的事情,我可以利用?
在此先感谢。
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags 这应该回答你所有的问题。 – 2010-01-20 08:31:59
别担心......我以前读过甜蜜的诗歌,但Alsciende为我提供了正确的答案。 – 2010-01-20 09:04:47