在javascript中检查变量是否为整数

在javascript中检查变量是否为整数,javascript,parseint,Javascript,Parseint,我制作了一个表单,用户在其中输入他们希望弹出窗口的宽度和高度值。我正在使用窗口。请打开 所以我想我需要检查宽度和高度的值是否是整数。我有一个函数,它检查一个变量是否是一个整数,即 function isInteger(possibleInteger) { return !isNaN(parseInt(possibleInteger)); } 但是我不知道如何将这个函数调用到宽度和高度函数来检查用户是否输入了整数。有人能帮忙吗 var isWidthAnInteger = isInteg

我制作了一个表单,用户在其中输入他们希望弹出窗口的宽度和高度值。我正在使用
窗口。请打开

所以我想我需要检查宽度和高度的值是否是整数。我有一个函数,它检查一个变量是否是一个整数,即

function isInteger(possibleInteger) {
    return !isNaN(parseInt(possibleInteger));
}
但是我不知道如何将这个函数调用到宽度和高度函数来检查用户是否输入了整数。有人能帮忙吗

var isWidthAnInteger = isInteger(document.getElementById('width').value);
var isHeightAnInteger = isInteger(document.getElementById('height').value);
if (isWidthAnInteger && isHeightAnInteger) {
    // TODO: window.open
}
其中有以下文本框:

Width: <input type="text" id="width" name="width" />
Height: <input type="text" id="height" name="height" />
宽度:
高度:

这是对主题中提到的问题的回答,而不是正文中的实际问题:)

以下方法在确定字符串是否为实整数时更为准确

function isInteger(possibleInteger) {
    return /^[\d]+$/.test(possibleInteger)​;
}
例如,您当前的方法验证“7.5”

编辑:根据MachineHost的评论,我修复了正确处理数组的函数。新功能如下:

function isInteger(possibleInteger) {
        return Object.prototype.toString.call(possibleInteger) !== "[object Array]" && /^[\d]+$/.test(possibleInteger);
}

如果您担心性能问题,可以选择其他答案

var isInteger1 = function(a) {
    return ((typeof a !== 'number') || (a % 1 !== 0)) ? false : true;
};
负载测试结果与Zafer在Chrome中的回答相比:

undefined => 4ms vs 151ms
1 => 10ms vs 390ms
1.1 => 61ms vs 250ms
'1' => 8ms vs 334ms
[1] => 9ms vs 210ms
{foo: 'bar'} => 8ms vs 478ms

自己看看:

好的,很酷,谢谢!你知道我是否可以像你做的那样,只做if和else语句,因为我还想检查它是否是int,如果不是,我想向用户发送一条错误消息。感谢您的帮助,很抱歉是javascript新手。哦,我正在检查函数和我的窗口中的宽度和高度是否为int。open是另一个名为page load的函数。如果(isWidthAnInteger&&isHeightAnInteger){//TODO:window.open}???只需在if
else{alert之后添加类似的else条件即可(“请输入宽度和高度的整数值”)}
如果(!isWidthAnInteger&!IsHightanInteger){alert(“请输入宽度和高度的整数值”);}或者如果(!isWidthAnInteger){alert(“请输入宽度的整数值”);}elseif(!IsHightanInteger){alert(“请输入高度的整数值”);}else{//TODO:window.open}
/^[\d]+$/.test([1])
返回true,
[1]
肯定是一个数组,而不是整数