拆分字符串忽略html标签

时间:2015-09-30 08:03:51

标签: javascript html regex

是否可以按空格分割字符串" "并忽略其中的html标签?
html标签可能包含样式元素,如:style =" font-size:14px;颜色: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>

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

?=预见。它说,&#34;找到空格,后跟一些字符序列 NOT 大于符号,然后是小于号(或字符串结尾)。

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