[正则一]匹配除html标签外关键字

2,387 阅读1分钟

背景

在处理某些内容时,需要对内容进行文本处理。
例如匹配关键字飘红、高亮、插入链接等。
但img、video、audio等标签自带title,不需要处理,可用以下表达式。

匹配 img标签外的关键字

const reg = new RegExp(`${关键字}(?![^<img]*[\/(.*?)>])`, 'gm')
const content = ${待处理内容}.replace(reg, `${需要替换的内容}`)

重点

  • gm 可匹配全部关键字 / m 匹配第一个关键字;
  • img 可换成其他标签;
  • 需要匹配多个标签可改成👇
new RegExp(`${关键字}(?!([^<img]*[/(.*?)>]|[^<video]*[/video>]|[^<audio]*[/audio>]))`, 'gm')