Мне нужно было проверить входное значение, если оно целочисленное или с плавающей точкой, и для этого я придумал следующее:
function isInteger(x) {
var integer = parseInt(x, 10);
if (!isNaN(integer) && !isFloat(x)) {
return true;
}
return false;
}
function isFloat(x) {
var f = parseFloat(x);
var floor = Math.floor(f);
var fraction = f - floor;
if (fraction > 0) {
return true;
}
return false;
}
var cases = [
"1",
"1.00",
"1.01",
"0.05",
"ab1",
"ab1.1",
1,
1.00,
1.01,
0.05,
1e+5,
"",
true,
false,
null,
NaN,
undefined,
];
console.log("isInteger()");
for (var i = 0; i < cases.length; i++) {
console.log(cases[i], isInteger(cases[i]));
}
console.log("\nisFloat()");
for (var i = 0; i < cases.length; i++) {
console.log(cases[i], isFloat(cases[i]));
}