parseInt("123@231.23")返回123,这是一个数字。
有大量的函数可以用来检测某物是否已经是一个数字,但它们都是依赖于parseInt。
如果不使用regex,检测这不是整数的另一种通用方法是什么?
发布于 2015-07-26 14:28:17
转换回字符串并进行比较:
String(parseInt("123"))=="123" // true
String(parseInt("123.sdfs"))=="123.sdfs" //false发布于 2015-07-26 14:46:12
如果您真的想检查“有效整数”,则必须将isNaN与以下内容结合起来:
function isValidInteger(numberToTest) {
return !(isNaN(numberToTest) || String(parseInt(numberToTest)) !== numberToTest.toString());
}这将评估如下:
console.log(isValidInteger('123@231.23')); // false
console.log(isValidInteger('123231.23')); // false
console.log(isValidInteger('12323')); // true
console.log(isValidInteger(1e-1)); // false
console.log(isValidInteger('1e-1')); // false即使是数字也是如此。这是PLNKR测试。
发布于 2015-07-26 14:45:30
我认为这是测试整数的最佳方法:
function isInt(str) {
if (typeof str !== 'number' && typeof str !== 'string') {
return false;
}
return str % 1 === 0;
}请注意,像"123.0“这样的字符串/数字的计算结果为true。
https://stackoverflow.com/questions/31638044
复制相似问题