/** * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT * @module remark:parse:util:html * @fileoverview HTML regexes. */ 'use strict'; var attributeName = '[a-zA-Z_:][a-zA-Z0-9:._-]*'; var unquoted = '[^"\'=<>`\\u0000-\\u0020]+'; var singleQuoted = '\'[^\']*\''; var doubleQuoted = '"[^"]*"'; var attributeValue = '(?:' + unquoted + '|' + singleQuoted + '|' + doubleQuoted + ')'; var attribute = '(?:\\s+' + attributeName + '(?:\\s*=\\s*' + attributeValue + ')?)'; 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 = ''; exports.openCloseTag = new RegExp('^(?:' + openTag + '|' + closeTag + ')'); exports.tag = new RegExp('^(?:' + openTag + '|' + closeTag + '|' + comment + '|' + processing + '|' + declaration + '|' + cdata + ')');