我想在文本中找到每个网址并用标记(<a href="...">...</a>
)包装它们。
var src = "bla blaaa blaaaaaa 1 http://yahoo.com text something about and. http://www.google.com";
var match = /http:\/\/([a-z0-9.-]+)/.exec(src); //this only can one matched
// result: ["http://yahoo.com", "yahoo.com"]
但我需要包装每个链接。
答案 0 :(得分:2)
您可以使用/g
(全局)匹配所有匹配项和反向引用,如下所示:
var src = "bla blaaa blaaaaaa 1 http://yahoo.com text something about and. http://www.google.com";
var match = src.replace(/http:\/\/([a-z0-9.-]+)/g, '<a href="$1">$1</a>');
答案 1 :(得分:1)
var res = src.replace(/(http:\/\/([a-z0-9.-]+))/g, '<a href="$1">$2</a>');
输出:
bla blaaa blaaaaaa 1 <a href="http://yahoo.com">yahoo.com</a> text something about and. <a href="http://www.google.com">www.google.com</a>
不确定是不是意图,而是我能想到的。如果您想在链接文字中保留<a href="$1">$1</a>
前缀,请使用http://
替换。
(与此同时,Nick Craver提供了答案和介绍了g
修饰符。)