@@ -32,22 +32,23 @@ import { LiteAdaptor } from '../liteAdaptor.js';
3232/**
3333 * Patterns used in parsing serialized HTML
3434 */
35- const TAGNAME = '[a-z][^\\s\\n>]*' ;
36- const ATTNAME = '[a-z][^\\s\\n>=]*' ;
37- const VALUE = `(?:'[^']*'|"[^"]*"|[^\\s\\n]+)` ;
38- const VALUESPLIT = `(?:'([^']*)'|"([^"]*)"|([^\\s\\n]+))` ;
39- const SPACE = '(?:\\s|\\n)+' ;
40- const OPTIONALSPACE = '(?:\\s|\\n)*' ;
35+
36+ const SPACE = '[ \\n]+' ;
37+ const OPTIONALSPACE = '[ \\n]*' ;
38+ const TAGNAME = `[A-Za-z][^\u0000-\u001F "'>/=\u007F-\u009F]*` ;
39+ const ATTNAME = `[^\u0000-\u001F "'>/=\u007F-\u009F]+` ;
40+ const VALUE = `(?:'[^']*'|"[^"]*"|${ SPACE } )` ;
41+ const VALUESPLIT = `(?:'([^']*)'|"([^"]*)"|(${ SPACE } ))` ;
4142const ATTRIBUTE = `${ ATTNAME } (?:${ OPTIONALSPACE } =${ OPTIONALSPACE } ${ VALUE } )?` ;
4243const ATTRIBUTESPLIT = `(${ ATTNAME } )(?:${ OPTIONALSPACE } =${ OPTIONALSPACE } ${ VALUESPLIT } )?` ;
4344const TAG =
4445 `(<(?:${ TAGNAME } (?:${ SPACE } ${ ATTRIBUTE } )*` +
4546 `${ OPTIONALSPACE } /?|/${ TAGNAME } |!--[^]*?--|![^]*?)(?:>|$))` ;
4647
4748export const PATTERNS = {
48- tag : new RegExp ( TAG , 'i ' ) ,
49- attr : new RegExp ( ATTRIBUTE , 'i ' ) ,
50- attrsplit : new RegExp ( ATTRIBUTESPLIT , 'i ' ) ,
49+ tag : new RegExp ( TAG , 'u ' ) ,
50+ attr : new RegExp ( ATTRIBUTE , 'u ' ) ,
51+ attrsplit : new RegExp ( ATTRIBUTESPLIT , 'u ' ) ,
5152} ;
5253
5354/************************************************************/
0 commit comments