// A simple way to check for HTML strings
// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
// Strict HTML recognition (#11290: must start with <)
rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
这是匹配html标签的,我不理解里面[^>]*
,为什么要加这个呢,是为了解决什么问题。
/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/.test('<a>>').test('<a>>'); // true
// A simple way to check for HTML strings
不是
// A simple way to check for HTML tag
(<[\w\W]+>)
用来匹配 HTML tag[^>]*
用来匹配 HTML tag 后面的字符串前面用了圆括号进行分组,所以,这个正则表达式可以把 tag 取出来。
只有第一部分和第二部分和在一起,才能完整匹配一行 HTML 代码。第二部分代表了 HTML 开始标签和结束标签中间的内容以及结束标签,当然第二部分可以没有。
例如: