[vue源码心得:1] 解析模板正则 一

const cname = '[a-zA-Z_][\\w\\-\\.]*'
const qnameCapture = `((?:${cname}\\:)?${cname})` const startTagOpen = new RegExp(`^<${qnameCapture}`);

这段正则其实只是解析标签的开标签,看起来有点费力。

解析:

1 \\. 这里代表的是普通点 . 而不是除了(\n、\r)之外的任何字符的元字符
2 \\- 就是普通的中划线-
3 首字母就是大小写英文字母和下划线之后可以跟多个[A-Za-z0-9_-.]字符
4 可以将两个合法的qname以 : 分隔作为完整的标签名

简单说,较之常见的标签名,合法类型还包括以下几种:

<_div> , 

你可能感兴趣的:([vue源码心得:1] 解析模板正则 一)