35 lines
893 B
JavaScript
35 lines
893 B
JavaScript
'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 = '<![A-Za-z]+\\s+[^>]*>'
|
|
var cdata = '<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'
|
|
|
|
exports.openCloseTag = new RegExp('^(?:' + openTag + '|' + closeTag + ')')
|
|
|
|
exports.tag = new RegExp(
|
|
'^(?:' +
|
|
openTag +
|
|
'|' +
|
|
closeTag +
|
|
'|' +
|
|
comment +
|
|
'|' +
|
|
processing +
|
|
'|' +
|
|
declaration +
|
|
'|' +
|
|
cdata +
|
|
')'
|
|
)
|