【问题标题】:Split string ignoring html tags拆分字符串忽略html标签
【发布时间】:2015-12-27 22:26:16
【问题描述】:

是否可以用空格“”分割字符串并忽略其中的html标签?
html 标签可能具有样式元素,例如: style="font-size:14px; color: rgb(0, 0, 0)" .....

我说的字符串是:

<div class="line"><span style="color: rgb(0,0,0)">John</span><u> has</u><b> apples</b></div>

如果你可以看到我在u 标记和b 标记内有空格字符

我想要得到的是要拆分的文本如下

<div class="line"><span style="color: rgb(0,0,0)">John</span><u>

has</u><b>

apples</b></div>

我有以下正则表达式,但它没有给我字符串的其余部分,只有前 2 部分:

[\<].+?[\>]\s

【问题讨论】:

  • 确切的用例是什么,可能还有另一种方式......编辑:你想得到什么
  • 我想你可以在“>”和“
  • 我不知道如何完全忽略 之间的空格

标签: javascript html regex


【解决方案1】:

使用以下正则表达式拆分:

str.split(/ (?=[^>]*(?:<|$))/)

[
  "<div class="line"><span style="color: rgb(0,0,0)">John</span><u>", 
  "has</u><b>", 
  "apples</b></div>"
]

?= 是一个前瞻。它说,“查找后跟一些字符序列的空格,这些字符是 NOT 大于号,然后是小于号(或字符串结尾)。

?: 是一个非捕获组。我们在这里需要它,因为split 有一个特殊的行为:捕获组的存在告诉它在生成的片段数组中包含拆分器,这是我们不想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 2013-04-18
    • 2010-09-05
    • 2023-03-30
    相关资源
    最近更新 更多