我想要使用jQuery/Javascript来解析HTML内容。我想查找方括号内的单词并更改整个单词的链接。替换网页上的链接的方形括号
例子:
<div>
This is text inside a div. It has a reference to an [[Article]]
</div>
我试图用正则表达式来改变什么是双括号内弄成这个样子:
<div>
This is text inside a div. It has a reference to an <a href='/dictionary#Article'>Article</a>
</div>
我能找到的方括号之间字的所有实例与此正则表达式:
$('article').html().match(/[^[\]]+(?=])/g)
但不知道如何替换文本。
打败我吧,非常干净的解决方案。这会垃圾处理绑定在嵌套元素中的处理程序,但如果没有附加到'div'的后代的事件处理程序,则不值得迭代textNodes。 – 2013-02-13 22:23:31
虽然这是完美的功能,但如果您不止有几种类型的东西被替换,性能可能是不可接受的。正则表达式效率不高。如果你正在制作一个wiki或论坛,或者有很多括号有限的标签的东西,你可能想要抓住每个标签开始和结束的索引,并将其传递给解释器函数。 – user1618143 2013-02-13 22:27:02
@FabrícioMatté不错,我也考虑过了,首先想提供'.contents()'解决方案。最后,决定走向简单的innerHTML改变。 – VisioN 2013-02-13 22:28:57