断 HTML 标签是否匹配;
思路分析:
声明变量 stack、nodes;并从头遍历 HTML 字符串,查找字符"<"的位置;
如果字符"<"的位置等于 0:
则继续尝试匹配 HTML 结束标签,匹配成功并且与栈顶的标签名称一致,则弹出栈顶;否则报错;
匹配 HTML 结束标签失败以后,则尝试匹配开始标签的起始部分,然后循环匹配标签属性对,最后匹配开始标签的结束部分。匹配完成以后,将匹配到的标签压入栈顶;并构建 node 节点数;
如果字符"<"的位置大于 0:
则 html.slice(0, pos),创建文本节点。