rule.value2regex does now unescape double escape. Patch by tcoulter. r=me (closes #1453)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@7866 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -137,13 +137,14 @@ OpenLayers.Filter.Comparison = OpenLayers.Class(OpenLayers.Filter, {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// set UMN MapServer defaults for unspecified parameters
|
// set UMN MapServer defaults for unspecified parameters
|
||||||
wildCard = wildCard ? wildCard : "*";
|
wildCard = wildCard ? wildCard : "*";
|
||||||
singleChar = singleChar ? singleChar : ".";
|
singleChar = singleChar ? singleChar : ".";
|
||||||
escapeChar = escapeChar ? escapeChar : "!";
|
escapeChar = escapeChar ? escapeChar : "!";
|
||||||
|
|
||||||
this.value = this.value.replace(
|
this.value = this.value.replace(
|
||||||
new RegExp("\\"+escapeChar, "g"), "\\");
|
new RegExp("\\"+escapeChar+"(.|$)", "g"), "\\$1")
|
||||||
this.value = this.value.replace(
|
this.value = this.value.replace(
|
||||||
new RegExp("\\"+singleChar, "g"), ".");
|
new RegExp("\\"+singleChar, "g"), ".");
|
||||||
this.value = this.value.replace(
|
this.value = this.value.replace(
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function test_Comparison_value2regex(t) {
|
function test_Comparison_value2regex(t) {
|
||||||
t.plan(2);
|
t.plan(4);
|
||||||
|
|
||||||
var filter = new OpenLayers.Filter.Comparison({
|
var filter = new OpenLayers.Filter.Comparison({
|
||||||
property: "foo",
|
property: "foo",
|
||||||
@@ -35,6 +35,15 @@
|
|||||||
filter.value = "%b.r!%!.%";
|
filter.value = "%b.r!%!.%";
|
||||||
filter.value2regex("%", ".", "!");
|
filter.value2regex("%", ".", "!");
|
||||||
t.eq(filter.value, ".*b.r\\%\\..*", "Regular expression with different wildcard and escape chars generated correctly.");
|
t.eq(filter.value, ".*b.r\\%\\..*", "Regular expression with different wildcard and escape chars generated correctly.");
|
||||||
|
|
||||||
|
filter.value = "!!";
|
||||||
|
filter.value2regex();
|
||||||
|
t.eq(filter.value, "\\!", "!! successfully unescaped to \\!");
|
||||||
|
|
||||||
|
// Big one.
|
||||||
|
filter.value = "!!c!!!d!e";
|
||||||
|
filter.value2regex();
|
||||||
|
t.eq(filter.value, "\\!c\\!\\d\\e", "!!c!!!d!e successfully unescaped to \\!c\\!\\d\\e");
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_regex2value(t) {
|
function test_regex2value(t) {
|
||||||
|
|||||||
Reference in New Issue
Block a user