3 回答

TA貢獻(xiàn)1830條經(jīng)驗 獲得超3個贊
在node和超過90%的所有瀏覽器(IE和Opera Mini除外)中均可使用的現(xiàn)代解決方案是使用Number.isInteger,然后進(jìn)行簡單的肯定檢查。
Number.isInteger(x) && x > 0
這已在ECMAScript 2015中完成。
function isPositiveInteger(x) {
return Number.isInteger(x) && x > 0
}
Polyfil是:
Number.isInteger = Number.isInteger || function(value) {
return typeof value === 'number' &&
isFinite(value) &&
Math.floor(value) === value;
};
如果您需要支持字符串或數(shù)字形式的輸入,則可以使用此功能,在所有現(xiàn)有答案(2018年2月1日)以某種形式的輸入均失敗后,我編寫了一個大型測試套件。
function isPositiveInteger(v) {
var i;
return v && (i = parseInt(v)) && i > 0 && (i === v || ''+i === v);
}
添加回答
舉報