isNaN()
определяет является ли литерал или переменная не числовым значением (NaN
) или нет.var validator = {
isNumber: function (x) {
return !isNaN(x);
}
};
Но при ее использовании кроется один нюанс, если на вход валидатора дать пустую строку произвольной длины, то на выходе вы получите true, то есть это число. Это особенность javascript. Дабы этого избежать можно внести небольшую правку
var utility = {
trim: function (str) {
return ('' + str).replace(/^\s+|\s+$/gm, '');
}
};
var validator = {
isNumber: function (x) {
x = utility.trim(x);
return x.length > 0 && !isNaN(x);
}
};
Также стоит обратить внимание на значение NaN, так как только для него следующее условие истинно!
var x = NaN;
x !== x; // true