// Regexps to match html elements 'use strict'; var attrName = '[a-zA-Z_:][a-zA-Z0-9:._-]*'; var unquoted = '[^"\'=<>`\\x00-\\x20]+'; var singleQuoted = "'[^']*'"; var doubleQuoted = '"[^"]*"'; var attrValue = '(?:' + unquoted + '|' + singleQuoted + '|' + doubleQuoted + ')'; var attribute = '(?:\\s+' + attrName + '(?:\\s*=\\s*' + attrValue + ')?)'; var openTag = '<[A-Za-z][A-Za-z0-9\\-]*' + attribute + '*\\s*\\/?>'; var closeTag = '<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>'; var comment = '|'; var processing = '<[?].*?[?]>'; var declaration = ']*>'; var cdata = ''; var HTML_TAG_RE = new RegExp('^(?:' + openTag + '|' + closeTag + '|' + comment + '|' + processing + '|' + declaration + '|' + cdata + ')'); var HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + openTag + '|' + closeTag + ')'); module.exports.HTML_TAG_RE = HTML_TAG_RE; module.exports.HTML_OPEN_CLOSE_TAG_RE = HTML_OPEN_CLOSE_TAG_RE;