如何检测包装纯文本并使用jquery应用html标记?

时间:2015-03-04 02:26:08

标签: javascript jquery html

我目前使用的jquery代码的功能是检测括号括起来的文本,它将作为链接的文本锚点。

问题是括号也出现在文本锚点上。是否可以只显示文字?此外,如果可以将括号()更改为括号[]。提前谢谢。

$("body").html($("#wrapper").html().replace(/(\([^)]+\))/, "<a href='https://www.sample-url-here.com/'>$1</a>"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wrapper">text (link here)</div>
我需要的结果应该是:

from text [link here] to text <a href="https://www.sample-url-here.com/">link here</a>

1 个答案:

答案 0 :(得分:2)

这个怎么样? (jsfiddle

$("body").html($("#wrapper").html().replace(/\(([^)]+)\)/, "[<a href='https://www.sample-url-here.com/'>$1</a>]"));

这将输出一个由方括号括起来的链接,只有链接带下划线。

原始正则表达式的问题在于它正在寻找括号的任何内容,被 括号内的任何内容包围,并且整个表达式被捕获括号包围

换句话说,让我们这样看:

(x)

我们会将您的捕获括号称为。稍后可以使用 $ 1 选择 x

x = \([^)]+\)

看到问题?您的整个 x 正在被捕获。

修改

jsfiddle已更新为不显示括号。

修改

这个怎么样? jsfiddle