29 lines
1.0 KiB
JavaScript
29 lines
1.0 KiB
JavaScript
|
// Regexps to match html elements
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
var attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*';
|
||
|
|
||
|
var unquoted = '[^"\'=<>`\\x00-\\x20]+';
|
||
|
var single_quoted = "'[^']*'";
|
||
|
var double_quoted = '"[^"]*"';
|
||
|
|
||
|
var attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')';
|
||
|
|
||
|
var attribute = '(?:\\s+' + attr_name + '(?:\\s*=\\s*' + attr_value + ')?)';
|
||
|
|
||
|
var open_tag = '<[A-Za-z][A-Za-z0-9\\-]*' + attribute + '*\\s*\\/?>';
|
||
|
|
||
|
var close_tag = '<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>';
|
||
|
var comment = '<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->';
|
||
|
var processing = '<[?][\\s\\S]*?[?]>';
|
||
|
var declaration = '<![A-Z]+\\s+[^>]*>';
|
||
|
var cdata = '<!\\[CDATA\\[[\\s\\S]*?\\]\\]>';
|
||
|
|
||
|
var HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment +
|
||
|
'|' + processing + '|' + declaration + '|' + cdata + ')');
|
||
|
var HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')');
|
||
|
|
||
|
module.exports.HTML_TAG_RE = HTML_TAG_RE;
|
||
|
module.exports.HTML_OPEN_CLOSE_TAG_RE = HTML_OPEN_CLOSE_TAG_RE;
|