|
|
@@ -40,7 +40,6 @@ export function parseFilters (exp: string): string {
|
|
|
case 0x22: inDouble = true; break // "
|
|
|
case 0x27: inSingle = true; break // '
|
|
|
case 0x60: inTemplateString = true; break // `
|
|
|
- case 0x2f: inRegex = true; break // /
|
|
|
case 0x28: paren++; break // (
|
|
|
case 0x29: paren--; break // )
|
|
|
case 0x5B: square++; break // [
|
|
|
@@ -48,6 +47,18 @@ export function parseFilters (exp: string): string {
|
|
|
case 0x7B: curly++; break // {
|
|
|
case 0x7D: curly--; break // }
|
|
|
}
|
|
|
+ if (c === 0x2f) { // /
|
|
|
+ let j = i - 1
|
|
|
+ let p
|
|
|
+ // find first non-whitespace prev char
|
|
|
+ for (; j >= 0; j--) {
|
|
|
+ p = exp.charAt(j)
|
|
|
+ if (p !== ' ') break
|
|
|
+ }
|
|
|
+ if (!p || !/[\w$]/.test(p)) {
|
|
|
+ inRegex = true
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|