我有以下正则表达式:
(</?[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.
我知道这听起来有点模糊,但我不想透露太多关于这个项目的内容。
答案 0 :(得分:4)
我在这个问题上实际上同意Omar,但无论如何我都会给你正则表达式。 :)
\<[^>]+?>|.+?(?=(?:<[^><]+?>|$))
答案 1 :(得分:1)
这是无限次提到的。正则表达式不是正确的工具。正则表达式适用于小,短和有限数量的文本。比如检查和验证用户输入。
我建议您了解有关浏览器DOM模型的更多信息。每个标记都是DOM中的一个对象,可以使用JavaScript进行选择,也可以引用。您可以通过这种方式播放数据。
答案 2 :(得分:0)
现在无法测试,但
怎么办?/(<\/?[a-zA-Z]+([^"]|"(\\.|[^"])*")*>)|([^<]|<[^a-zA-Z])*/