繁体   English   中英

忽略<a>[url][img]</a>内的所有内容的正则表达式

[英]regex that ignore all inside <a> [url][img]

这是一个棘手的正则表达式代码,实际上我有一个可以正常工作的脚本,但我需要一个更精确的模式以避免与包含标签和 bbcode 的 url 冲突。

实际上,我的代码替换了所有主题标签,例如 #example 并将其转换为链接,例如:

https://myurl/?q=example

所以我的正则表达式是:

const regex = /#[^\s.@#$%^&*()=+,\/;\[{\]}:?'";><]+/g;

我想要一个忽略<a>中的所有 url、[url] 和 [img] 中的所有 url 和 [img] 的正则表达式,以避免 bbcode 冲突。

但我找不到有效的模式

我实际上拥有的完整代码:


export default function () {

  const regex = /#[^\s!@#$%^&*()=+.\/,\[{\]};:'"?><]+/g;

  const p = this.$('.Post-body');
  const baseurl = app.forum.attribute('baseUrl');

  p.html = p.html(p.html().replace(regex, match => `<a href="${baseurl}/?q=${match}" class="hashlink" title="Find more post with this hashtag">${match}</a>`))

}

实际上我找到了一个可行的解决方案,我会在这里发布解决方案(可能对某人有用)

 const regex = /(?<!https?:\/\/\S*)#[^\s!@#$%^&*()=+.\/,\[{\]};:'"?><]+/g;

我已经使用match.slice删除了多余的 #

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM