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

时间:2016-06-07 08:20:20

标签: javascript jquery integer

如何简单地检查字符串是否可以转换为整数?

我的意思是只有整数,所以像'10.1'这样的字符串不会转换为10

例如,如果我这样做:

parseInt('10.1', 10)

它返回10

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

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

我试过了:

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

它有点有用,但是如果我写例如10.,它将返回true,因为Number会转换为10。我想我需要用正则表达式来检查这个东西吗?

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

4 个答案:

答案 0 :(得分:6)

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

function isInteger(value) {
  return /^\d+$/.test(value);
}

答案 1 :(得分:0)

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

function isInteger(value) {
  if(parseInt(value,10).toString()===value) {
    return true
  }
  return false;
}

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

答案 2 :(得分:0)

您可以使用

js的数字函数(http://www.w3schools.com/jsref/jsref_number.asp

js(http://www.w3schools.com/jsref/jsref_parseint.asp

的parseInt函数

答案 3 :(得分:-1)

您可以使用正则表达式来检测它是否与任何值匹配。

function isInterger(value) {
     if (value.match(/^\d+$)) {
        return true;
   } else {
        return false;
   }
}

https://regex101.com/r/lE5tK1/1