HTML-Parser
背景:需求需要把 html 字符串转成 DOM 对象树或者 js 对象树,然后进行一些处理/操作。htmlparser 这个库还行,但是对 attribute 上一些特殊属性值转换不行,同时看了看开标签语法(syntax-start-tag:whatwg)、html-attribute 的支持规则(attributes:whatwg) 和一些其他库的实现,在一些边界场景(特殊属性值和web component)处理还是缺少,算了... 自己撸了个 html parser 的函数么好了。 本文主要是记录下实现过程,做个技术沉淀,有相关需求的可以做个参考。 前期处理 首先,定义一些正则表达式,用以匹配希望找到的内容 const ltReg = /\</g const gtReg = /\>/g const sqReg = /'/g const qReg = /"/g const sqAttrReg = /(?<=\=')[^']*?(?=')/g const qAttrReg = /(?<=\=")[^"]*?(?=")/g const qRegBk = /&...