【问题标题】:regex to highlight text between tags正则表达式突出显示标签之间的文本
【发布时间】:2016-07-29 13:55:08
【问题描述】:

我的文本包含<abbr></abbr> 标签之间的文本

我想突出显示标签之间不包含其他<abbr></abbr> 标签的<abbr></abbr> 标签。这是示例

 content example <abbr variable-title="notepad 1">data <abbr variable-title="notepad 2">sample value </abbr>sample conten</abbr>

在此我只想突出显示&lt;abbr variable-title="notepad 2"&gt;sample value &lt;/abbr&gt;,因为它没有嵌套的&lt;abbr&gt;&lt;/abbr&gt;

如何编写正则表达式以突出显示此类单个 &lt;abbr&gt;&lt;/abbr&gt; 标记

【问题讨论】:

  • 这不是你想要 JS/Regex 的东西。这更适用于CSS

标签: javascript html regex


【解决方案1】:

使用 JavaScript:

str.replace(/(<abbr )([^>]*>[^<]*(<(?!abbr)[^<]*)*?<\/abbr>)/gi, "$1class=\"highlight\" $2");

demo

然后在你的 CSS 中定义一个类 abbr.highlight

【讨论】:

【解决方案2】:

可以试试这个/&lt;abbr&gt;(\S.*?)&lt;\/abbr&gt;/gi

【讨论】:

  • 未突出显示。请在此处查看regex101.com/r/cD8nG4/41
  • 虽然这段代码 sn-p 可以解决问题,including an explanation 确实有助于提高您的帖子质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性 cmets 挤满你的代码,因为这会降低代码和解释的可读性!
猜你喜欢
  • 1970-01-01
  • 2012-03-26
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-11
相关资源
最近更新 更多