Javascript替换文本不呈现HTML

时间:2014-03-08 04:42:10

标签: javascript regex

使用

<div>[[foo]] bar</div>

我跑

replace(/\[\[(.*)\]\]/, function(t){return "<a href='"+t+"'>"+t+"</a>"});

并且页面文本只是更改为文字

<a href='[[foo]]'>[[foo]]</a> bar

而不是创建有效的超链接。

所以问题是,如何使用replace方法而不是查看文字来使用html?请不要建议我只使用一个linkify库 - 这只是一个例子。

1 个答案:

答案 0 :(得分:0)

我不知道为什么nnnnnn没有发表他的评论作为答案,因为它是正确的。 replace中的函数接受匹配的子字符串作为第一个参数,并且每个其他参数都是“第n个带括号的子匹配字符串”,如MDN docs中所述。

以下是代码:

"<div>[[foo]] bar</div>".replace(/\[\[(.*)\]\]/, function(m, t){return "<a href='"+t+"'>"+t+"</a>"})
"<div><a href='foo'>foo</a> bar</div>"