From 933b6ad59450bb7721cb1509f395bc55b7174fd2 Mon Sep 17 00:00:00 2001 From: gorhill Date: Sun, 13 Dec 2015 11:03:13 -0500 Subject: [PATCH] #1056: code review --- src/js/static-net-filtering.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/js/static-net-filtering.js b/src/js/static-net-filtering.js index ced1dcf18..9e2531881 100644 --- a/src/js/static-net-filtering.js +++ b/src/js/static-net-filtering.js @@ -1303,7 +1303,8 @@ var trimChar = function(s, c) { var FilterParser = function() { this.reHasWildcard = /[\^\*]/; - this.reCanTrimCarets = /^([^*]*|[^^]+\^[^^]+)$/; + this.reCanTrimCarets1 = /^[^*]*$/; + this.reCanTrimCarets2 = /^\^?[^^]+[^^][^^]+\^?$/; this.reHasUppercase = /[A-Z]/; this.reCleanupHostname = /^\|\|[.*]*/; this.reIsolateHostname = /^([^\x00-\x24\x26-\x2C\x2F\x3A-\x5E\x60\x7B-\x7F]+)(.*)/; @@ -1568,7 +1569,7 @@ FilterParser.prototype.parse = function(raw) { s = s.replace(/([^%0-9a-z])\*+$/, '$1'); } // https://github.com/gorhill/uBlock/issues/1056 - if ( this.reCanTrimCarets.test(s) ) { + if ( this.reCanTrimCarets1.test(s) && this.reCanTrimCarets2.test(s) ) { s = trimChar(s, '^'); } }