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

How to detect wrapped plain text and apply html markup using jquery?

本文关键字:文本 应用 html 标记 何使用 jquery 检测 包装      更新时间:2023-09-26

我目前拥有的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>

这个怎么样?(jsfiddle)

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

这将输出一个被方括号包围的链接,其中只有带下划线的链接。

原始正则表达式的问题是,它在寻找任何而不是括号,被圆括号的任何内容包围,整个表达式被捕获的括号包围。

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

(x)

我们将把它们称为捕获括号x可以稍后使用$1进行选择。

x = '([^)]+')

看到问题了吗?您的整个x都被捕获了。

编辑

jsfiddle更新为不显示括号。

编辑

这个怎么样?jsfiddle