Skip to content

Commit c636f0d

Browse files
DShadrickfb55
authored andcommitted
Allow escaped parentheses in pseudo selectors (#20)
1 parent 4e255c9 commit c636f0d

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

index.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,13 @@ function parseSelector(subselects, selector, options){
104104
selector = selector.substr(start);
105105
}
106106

107+
function isEscaped(pos) {
108+
var slashCount = 0;
109+
110+
while (selector.charAt(--pos) === "\\") slashCount++;
111+
return (slashCount & 1) === 1;
112+
}
113+
107114
stripWhitespace(0);
108115

109116
while(selector !== ""){
@@ -211,8 +218,8 @@ function parseSelector(subselects, selector, options){
211218
var pos = 1, counter = 1;
212219

213220
for(; counter > 0 && pos < selector.length; pos++){
214-
if(selector.charAt(pos) === "(") counter++;
215-
else if(selector.charAt(pos) === ")") counter--;
221+
if(selector.charAt(pos) === "(" && !isEscaped(pos)) counter++;
222+
else if(selector.charAt(pos) === ")" && !isEscaped(pos)) counter--;
216223
}
217224

218225
if(counter){

0 commit comments

Comments
 (0)