首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断"123@231.23“是不是javascript中的数字?

如何判断"123@231.23“是不是javascript中的数字?
EN

Stack Overflow用户
提问于 2015-07-26 14:23:39
回答 4查看 114关注 0票数 2

parseInt("123@231.23")返回123,这是一个数字。

有大量的函数可以用来检测某物是否已经是一个数字,但它们都是依赖于parseInt

如果不使用regex,检测这不是整数的另一种通用方法是什么?

EN

回答 4

Stack Overflow用户

发布于 2015-07-26 14:28:17

转换回字符串并进行比较:

代码语言:javascript
复制
String(parseInt("123"))=="123" // true
String(parseInt("123.sdfs"))=="123.sdfs" //false
票数 1
EN

Stack Overflow用户

发布于 2015-07-26 14:46:12

如果您真的想检查“有效整数”,则必须将isNaN与以下内容结合起来:

代码语言:javascript
复制
function isValidInteger(numberToTest) {
  return !(isNaN(numberToTest) || String(parseInt(numberToTest)) !== numberToTest.toString());    
}

这将评估如下:

代码语言:javascript
复制
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测试。

票数 1
EN

Stack Overflow用户

发布于 2015-07-26 14:45:30

我认为这是测试整数的最佳方法:

代码语言:javascript
复制
function isInt(str) {
    if (typeof str !== 'number' && typeof str !== 'string') {
        return false;
    }

    return str % 1 === 0;
}

请注意,像"123.0“这样的字符串/数字的计算结果为true

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31638044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档