gpt4 book ai didi

javascript - 正则表达式仅匹配链接中没有的引号

转载 作者:行者123 更新时间:2023-11-27 22:33:03 24 4
gpt4 key购买 nike

你能告诉我如何在 JavaScript 中使用正则表达式选择引用的文本,而不是链接中的文本

所以我不想选择这些引号<a href="some link">some text</a>我只想选择正常引用的文本

我用过

result = content.replace(/"(.*?)"/g, "<i>$1</i>"); 

用斜体替换所有引用的文本,但它也替换 href 引号

谢谢:)

最佳答案

如果您需要临时正则表达式解决方案,您可以匹配并捕获标签,并且仅替换 "其他上下文中的符号。将标签定义为 < +非- <到第一个 > ,我们可以使用

var s = '"replace this" but <div id="not-here"><a href="not this"></a> "and here"</div>';
var re = /(<[^<]*?>)|"(.*?)"/g;
var result = s.replace(re, function (m,g1,g2) {
return g1? g1 : '<i>' + g2 + '</i>';
});
console.log(result);

(<[^<]*?>)|"(.*?)"匹配:

  • (<[^<]*?>) - 第 1 组(g1 稍后在回调中)捕获 < , 0+ 除 < 之外的符号尽可能少到第一个 >
  • | - 或
  • "(.*?)" -" ,除了换行符之外的 0+ 个字符尽可能少地捕获到第 2 组中(g2 稍后)和 " .

在回调方法中,检查组 1 是否匹配,如果匹配,我们只需将标签放回结果中,否则,替换为标签。

关于javascript - 正则表达式仅匹配链接中没有的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39389587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com