html.js 893 B

12345678910111213141516171819202122232425262728293031323334
  1. 'use strict'
  2. var attributeName = '[a-zA-Z_:][a-zA-Z0-9:._-]*'
  3. var unquoted = '[^"\'=<>`\\u0000-\\u0020]+'
  4. var singleQuoted = "'[^']*'"
  5. var doubleQuoted = '"[^"]*"'
  6. var attributeValue =
  7. '(?:' + unquoted + '|' + singleQuoted + '|' + doubleQuoted + ')'
  8. var attribute =
  9. '(?:\\s+' + attributeName + '(?:\\s*=\\s*' + attributeValue + ')?)'
  10. var openTag = '<[A-Za-z][A-Za-z0-9\\-]*' + attribute + '*\\s*\\/?>'
  11. var closeTag = '<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>'
  12. var comment = '<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->'
  13. var processing = '<[?].*?[?]>'
  14. var declaration = '<![A-Za-z]+\\s+[^>]*>'
  15. var cdata = '<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'
  16. exports.openCloseTag = new RegExp('^(?:' + openTag + '|' + closeTag + ')')
  17. exports.tag = new RegExp(
  18. '^(?:' +
  19. openTag +
  20. '|' +
  21. closeTag +
  22. '|' +
  23. comment +
  24. '|' +
  25. processing +
  26. '|' +
  27. declaration +
  28. '|' +
  29. cdata +
  30. ')'
  31. )