使用
<div>[[foo]] bar</div>
我跑
replace(/\[\[(.*)\]\]/, function(t){return "<a href='"+t+"'>"+t+"</a>"});
并且页面文本只是更改为文字
<a href='[[foo]]'>[[foo]]</a> bar
而不是创建有效的超链接。
所以问题是,如何使用replace
方法而不是查看文字来使用html?请不要建议我只使用一个linkify库 - 这只是一个例子。
答案 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>"