instead, add a trimWhitespace option to OpenLayers.String.numericIf as discussed with @ahocevar
This commit is contained in:
@@ -189,12 +189,16 @@ OpenLayers.String = {
|
||||
*
|
||||
* Parameters:
|
||||
* value - {String}
|
||||
* trimWhitespace - {Boolean}
|
||||
*
|
||||
* Returns:
|
||||
* {Number|String} a Number if the passed value is a number, a String
|
||||
* otherwise.
|
||||
*/
|
||||
numericIf: function(value) {
|
||||
numericIf: function(value, trimWhitespace) {
|
||||
if (trimWhitespace === true) {
|
||||
value = value.replace(/^\s*|\s*$/g, "");
|
||||
}
|
||||
return OpenLayers.String.isNumeric(value) ? parseFloat(value) : value;
|
||||
}
|
||||
|
||||
|
||||
@@ -180,18 +180,18 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
|
||||
},
|
||||
"Literal": function(node, obj) {
|
||||
obj.value = OpenLayers.String.numericIf(
|
||||
this.getChildValue(node).replace(this.regExes.trimSpace, ""));
|
||||
this.getChildValue(node), true);
|
||||
},
|
||||
"PropertyName": function(node, filter) {
|
||||
filter.property = this.getChildValue(node);
|
||||
},
|
||||
"LowerBoundary": function(node, filter) {
|
||||
filter.lowerBoundary = OpenLayers.String.numericIf(
|
||||
this.readers.ogc._expression.call(this, node).replace(this.regExes.trimSpace, ""));
|
||||
this.readers.ogc._expression.call(this, node), true);
|
||||
},
|
||||
"UpperBoundary": function(node, filter) {
|
||||
filter.upperBoundary = OpenLayers.String.numericIf(
|
||||
this.readers.ogc._expression.call(this, node).replace(this.regExes.trimSpace, ""));
|
||||
this.readers.ogc._expression.call(this, node), true);
|
||||
},
|
||||
"Intersects": function(node, obj) {
|
||||
this.readSpatial(node, obj, OpenLayers.Filter.Spatial.INTERSECTS);
|
||||
|
||||
@@ -220,9 +220,10 @@
|
||||
{value: " 3", expect: " 3"},
|
||||
{value: "1e", expect: "1e"},
|
||||
{value: "1+e", expect: "1+e"},
|
||||
{value: "1-e", expect: "1-e"}
|
||||
{value: "1-e", expect: "1-e"},
|
||||
{value: " 27 ", expect: " 27 "}
|
||||
];
|
||||
t.plan(cases.length);
|
||||
t.plan(cases.length + 1);
|
||||
|
||||
var func = OpenLayers.String.numericIf;
|
||||
var obj, val, got, exp;
|
||||
@@ -233,6 +234,9 @@
|
||||
got = func(val);
|
||||
t.eq(got, exp, "'" + val + "' returns " + exp);
|
||||
}
|
||||
|
||||
// test the trimWhitespace option
|
||||
t.eq(OpenLayers.String.numericIf(" 27 ", true), 27, "if trimWhitespace is true, we expect to get a Number");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user