我目前使用的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>
答案 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