Vue中常用的正则

70 阅读1分钟
var ncname = '[a-zA-Z_][\w\-\.]*';

// 复用拼接,这在我们项目中完成可以学起来
var qnameCapture = "((?:" + ncname + "\:)?" + ncname + ")";

// 匹配注释
var comment =/^<!--/;

// 匹配<!DOCTYPE> 声明标签
var doctype = /^<!DOCTYPE [^>]+>/i;

// 匹配条件注释
var conditionalComment =/^<![/;

// 匹配开始标签
var startTagOpen = new RegExp(("^<" + qnameCapture));

// 匹配解说标签
var endTag = new RegExp(("^<\/" + qnameCapture + "[^>]*>"));

// 匹配单标签
var startTagClose = /^\s*(/?)>/;

// 匹配属性,例如 id、class
var attribute = /^\s*([^\s"'<>/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;

// 匹配动态属性,例如 v-if、v-else
var dynamicArgAttribute = /^\s*((?:v-[\w-]+:|@|:|#)[[^=]+][^\s"'<>/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;`