MCPcopy Index your code
hub / github.com/ygs-code/vue / parseStartTag

Function parseStartTag

vue.js:12771–12805  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

12769
12770 //获取开始标签的名称,收集属性集合,开始位置和结束位置,并且返回该对象
12771 function parseStartTag() {
12772 var start = html.match(startTagOpen); //匹配开始标签 匹配开头必需是< 后面可以忽略是任何字符串 ^<((?:[a-zA-Z_][\\w\\-\\.]*\\:)?[a-zA-Z_][\\w\\-\\.]*)
12773 console.log(start)
12774 console.log(start[0].length)
12775
12776 if (start) {
12777 var match = {
12778 tagName: start[1], //标签名称
12779 attrs: [], //标签属性集合
12780 start: index //标签的开始索引
12781 };
12782 //标记开始标签的位置,截取了开始标签
12783 advance(start[0].length);
12784 var end, attr;
12785
12786 while (
12787 !(end = html.match(startTagClose)) //没有到 关闭标签 > 标签
12788 && (attr = html.match(attribute)) //收集属性
12789 ) {
12790 console.log(html)
12791 //截取属性标签
12792 advance(attr[0].length);
12793 match.attrs.push(attr); //把属性收集到一个集合
12794 }
12795 if (end) {
12796 match.unarySlash = end[1]; //如果是/>标签 则unarySlash 是/。 如果是>标签 则unarySlash 是空
12797 console.log(end)
12798
12799 //截取掉开始标签,并且更新索引
12800 advance(end[0].length);
12801 match.end = index; //开始标签的结束位置
12802 return match
12803 }
12804 }
12805 }
12806
12807 //把数组对象属性值循环变成对象,这样可以过滤相同的属性
12808 //为parseHTML 节点标签堆栈 插入一个桟数据

Callers 1

parseHTMLFunction · 0.85

Calls 1

advanceFunction · 0.85

Tested by

no test coverage detected