Javascript - 检查字符串是否可以转换为整数?

And*_*ius 1 javascript jquery integer

我怎样才能简单地检查字符串是否可以转换为整数?

我的意思是只有整数,所以字符串'10.1'就不会被转换为10.

例如,如果我这样做:

parseInt('10.1', 10)
Run Code Online (Sandbox Code Playgroud)

它返回10

是否有类似于Python的东西,所以我不需要做很多检查?

在Python中如果我这样做int('10.1'),它会给我错误,但如果string实际上是整数,那么它只允许你转换它int('10').因此,即使不使用正则表达式或一些额外的检查,也很容易检查.

我试过这个:

    function isInteger (value) {
        if ($.isNumeric(value) && Number(value) % 1 === 0){
            return true;
        } else {
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

它有点工作,但如果我写的例子10.,它将返回true,因为Number转换为10.我想我需要使用正则表达式检查这样的事情?

PS我搜索了这个问题,但所有答案似乎都很模糊,实际上并没有回答如何正确检查整数(不仅仅是数字).

And*_*ril 7

一种可能性是使用正则表达式进行测试,如下所示:

function isInteger(value) {
  return /^\d+$/.test(value);
}
Run Code Online (Sandbox Code Playgroud)


Emi*_*sen 5

如果我正确理解你的问题那么应该这样做:

function isInteger(value) {
  if(parseInt(value,10).toString()===value) {
    return true
  }
  return false;
}
Run Code Online (Sandbox Code Playgroud)

它将字符串转换为整数,然后再转换回字符串,并将其与原始字符串进行比较。如果匹配,则返回 true,否则返回 false。