慕無忌1623718
2019-11-23 12:52:00
我想要最簡單的故障安全測試來檢查JavaScript中的字符串是否為正整數。isNaN(str)對于各種非整數值返回true,并且parseInt(str)為浮點字符串返回整數,例如“ 2.5”。而且我也不想使用任何jQuery插件。
3 回答

牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
在node和超過90%的所有瀏覽器(IE和Opera Mini除外)中均可使用的現代解決方案是使用Number.isInteger,然后進行簡單的肯定檢查。
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;
};
如果您需要支持字符串或數字形式的輸入,則可以使用此功能,在所有現有答案(2018年2月1日)以某種形式的輸入均失敗后,我編寫了一個大型測試套件。
function isPositiveInteger(v) {
var i;
return v && (i = parseInt(v)) && i > 0 && (i === v || ''+i === v);
}
添加回答
舉報
0/150
提交
取消