Вы хотите проверить, является ли какое значение целым числом? Конечно, не проповедь? Там много кода, который, похоже, совсем не связан с вашим вопросом.
В любом случае, если вы хотите проверить вводимое пользователем значение, чтобы убедиться, что оно является целым числом, вы можете преобразовать его в число и затем проверить, равно ли число тому же числу, округленному в меньшую сторону:
function isInteger(val) {
var n = +val; // convert with unary plus operator
return val != "" && n === Math.floor(n);
}
Обратите внимание, что пустая строка будет преобразована в 0, следовательно, проверка того, что val
не является пустой строкой.
Потенциальная проблема: в приведенном выше случае "1.000" будет рассматриваться как целое число - это приемлемо?
Если вы не хотите, чтобы пользователь вводил десятичную точку, другой способ приблизиться к ней - это проверить с помощью регулярного выражения, убедившись, что введены только цифры (без десятичной точки):
function isInteger(val) {
return /^-?\d+$/.test(val);
}
Если вам нужно ограничить его определенным количеством цифр, это легко сделать с помощью регулярного выражения:
// e.g., max four digits, optional minus sign:
return /^-?\d{1,4}$/.test(val);
(Примечание: `isNaN ()" сломан ".)