Reputation: 2047
value = "+"
isNaN(value)
Condition is false
value > 0
condition is true
value ="200"
isNaN(value)
Condition is false
value > 0
condition is true
Here's the thing, in both the cases value > 0
shows true
, i want to differentiate things like +-/* with numbers 0,200,5 etc.
is it possible to do this in Javascript??
Upvotes: 1
Views: 244
Reputation: 18753
value = "+";
// is true as "+" isn't a number
console.log(isNaN(value));
// is false because "+" isn't greater than 0
console.log(value > 0);
value = "200";
// is false, because value is a number
console.log(isNaN(value));
// is true because "200" is greater than 0
console.log(value > 0);
isNumeric
functionfunction isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
value = "+";
// is false because "+" isn't numeric
console.log(isNumeric(value));
// is false because "+" isn't greater than 0
console.log(value > 0);
value = "200";
// is true, because value is numeric
console.log(isNumeric(value));
// is true, because "200" is greater than 0
console.log(value > 0);
value = "+";
// is false as "+" is a string
console.log(typeof(value) === "number");
// is false because "+" isn't greater than 0
console.log(value > 0);
value = "200";
// is false, because value is a string not a number
console.log(typeof(value) === "number");
// is true because "200" is greater than 0, this auto converts to 200
console.log(value > 0);
function symbolCompare(value) {
var results = /(\+|\-)(\d+)/.exec(value);
if(results) {
return results[2];
}
return false;
}
value = "+200";
// is false because 200 is a number
console.log(isNaN(symbolCompare(value)));
// is true because 200 > 0
console.log(symbolCompare(value) > 0);
value = "-200";
// is false because 200 is a number
console.log(isNaN(symbolCompare(value)));
// is true because 200 > 0
console.log(symbolCompare(value) > 0);
Upvotes: 2