如何简单地检查字符串是否可以转换为整数?
我的意思是只有整数,所以像'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。我搜索了这个问题,但所有答案似乎都很模糊,实际上并没有回答如何正确检查整数(不仅仅是数字)。
答案 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)
答案 3 :(得分:-1)
您可以使用正则表达式来检测它是否与任何值匹配。
function isInterger(value) {
if (value.match(/^\d+$)) {
return true;
} else {
return false;
}
}