Javascript拆分包括分隔符

时间:2011-09-05 16:37:42

标签: javascript regex split

我有以下正则表达式:

(</?[a-z][a-z0-9]*[^<>]*>)

我有以下文字:

<DIV><P class='abc'>Hello <B>Mister</B>! How are you >..< doing? </P>
<I>I'm good</I></DIV>

现在我想分割每个标签的文字:

<DIV>
<P class='abc'>
Hello 
<B>
Mister
</B>
! How are you >..< doing?

</P>
<I>
I'm good
</I>
</DIV>

如何使用Javascript正则表达式执行此操作?
是能够让它工作,但不得不重新开始,因为JavaScript不支持lookbehinds。

(基本上拆分为html标签并保留分隔符)

修改
我的目标是使用html来存储格式。我想将上面的html提供给一个javascript对象。 javascript对象将格式与文本分开,并为常规文本执行格式化对象和操作B的操作A.

我知道这听起来有点模糊,但我不想透露太多关于这个项目的内容。

3 个答案:

答案 0 :(得分:4)

我在这个问题上实际上同意Omar,但无论如何我都会给你正则表达式。 :)

\<[^>]+?>|.+?(?=(?:<[^><]+?>|$))

答案 1 :(得分:1)

这是无限次提到的。正则表达式不是正确的工具。正则表达式适用于小,短和有限数量的文本。比如检查和验证用户输入。

我建议您了解有关浏览器DOM模型的更多信息。每个标记都是DOM中的一个对象,可以使用JavaScript进行选择,也可以引用。您可以通过这种方式播放数据。

答案 2 :(得分:0)

现在无法测试,但

怎么办?
/(<\/?[a-zA-Z]+([^"]|"(\\.|[^"])*")*>)|([^<]|<[^a-zA-Z])*/