0

在 JavaScript 正则表达式中,如何转例如

Check out http://example.com/foobar#123

进入

Check out <a href="http://example.com/foobar#123">example.com/foobar#123</a>

谢谢!

4

2 回答 2

1

假设str是包含该文本的字符串,这是对捕获组的简单使用:

str = str.replace(/(http:\/\/)([^ ]+)/g, '<a href="$1$2">$2</a>');

当然,这假设文本中还没有任何链接标签,因为如果有的话,它会把它们弄乱。仅在标记文本中的标记之外执行此操作并非易事(仅使用单个正则表达式不能绝对可靠地完成,您必须进行解析)。

于 2013-11-12T11:10:15.040 回答
1

使用此替换调用:

s = 'Check out http://example.com/foobar#123';
repl = s.replace(/(https?:\/\/(\S+))/i, "<a href='$1'>$2</a>");
//=> Check out <a href='http://example.com/foobar#123'>example.com/foobar#123</a>
于 2013-11-12T11:10:27.270 回答