我可以在迭代字符串时构建开始/结束标记吗?

时间:2017-01-30 23:23:10

标签: javascript

我有一个字符串,里面有一些html标签。我希望能够找到一个开始和结束标记,并添加缺少的标记。 例如,假设我有这个字符串:

Hello <strong>from <em>StackOverflow</strong> Hows it going</em>.

我希望能够在结束<em>之前关闭第一个</strong>,并在结束<em>后立即添加一个开头</strong>。 我会知道包含哪些标签,但我提供的字符串可能包含混合开/关标签的任何变体。

如果没有DOMParser或innerHTML的帮助,我该如何处理?

基本上,我想迭代字符串,当我遇到<时,我想要开始一个开始字符串,然后在>关闭它。然后,当我遇到</并在>结束时,我想要开始结束标记。

问题是,在迭代字符串时,由于一次检查一个字符,我将始终启动一个开始标记?在迭代时,如何从字符串中构建这些标记?

1 个答案:

答案 0 :(得分:0)

您可以在JavaScript中使用(<.+?>)这样的正则表达式找到开始和结束标记 的位置,但是在JavaScript中不支持regex lookbehind,您要问的可能是不可能的,由于您永远无法确定哪个结束标记与哪个开始标记相关。

希望这有帮助!