diff --git a/src/parse.spec.ts b/src/parse.spec.ts index e5577a9e..02ddb55e 100644 --- a/src/parse.spec.ts +++ b/src/parse.spec.ts @@ -38,6 +38,7 @@ const broken = [ ":has(p", ":foo(p()", "#", + "##foo", ]; describe("Broken selectors", () => { diff --git a/src/parse.ts b/src/parse.ts index 86f71095..677a029d 100644 --- a/src/parse.ts +++ b/src/parse.ts @@ -78,7 +78,7 @@ export type TraversalType = | "parent" | "sibling"; -const reName = /^[^\\]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/; +const reName = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/; const reEscape = /\\([\da-f]{1,6}\s?|(\s)|.)/gi; // Modified version of https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L87 const reAttr = /^\s*(?:(\*|[-\w]*)\|)?((?:\\.|[\w\u00b0-\uFFFF-])+)\s*(?:(\S?)=\s*(?:(['"])((?:[^\\]|\\[^])*?)\4|(#?(?:\\.|[\w\u00b0-\uFFFF-])*)|)|)\s*([iI])?\]/;