javascript 检查变量是否为整数

发布于 2024-09-17 05:31:56 字数 279 浏览 13 评论 0原文

我制作了一个表单,用户可以在其中输入他们想要的弹出窗口的宽度和高度值。我正在使用 window.open 来实现这一点。

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

function isInteger(possibleInteger) {
    return !isNaN(parseInt(possibleInteger));
}

但我不知道如何将此函数调用到宽度和高度函数来检查用户是否输入了整数。有人可以帮忙吗?

I made a form where the user inputs values for width and height that they want for the pop up window to be. I am using window.open for that.

So I think I need to check if the values for width and height are integer. I have a function that checks that a variable is an integer that is...

function isInteger(possibleInteger) {
    return !isNaN(parseInt(possibleInteger));
}

but I don't know how to call this function to the width and height function to check if the user inputted an integer. Can any one help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

荒岛晴空 2024-09-24 05:31:56

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

以下方法可以更准确地确定字符串是否为实数。

function isInteger(possibleInteger) {
    return /^[\d]+$/.test(possibleInteger)​;
}

例如,您当前的方法验证“7.5”。

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

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

This is an answer to question mentioned in the topic, not the actual one in the body of the text :).

The following method is more accurate on determining if the string is a real integer.

function isInteger(possibleInteger) {
    return /^[\d]+$/.test(possibleInteger)​;
}

Your current method validates "7.5" for instance.

EDIT: Based on machineghost's comment, I fixed the function to correctly handle arrays. The new function is as follows:

function isInteger(possibleInteger) {
        return Object.prototype.toString.call(possibleInteger) !== "[object Array]" && /^[\d]+$/.test(possibleInteger);
}
怪我入戏太深 2024-09-24 05:31:56

如果您担心性能,可以选择另一个答案。

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

亲自查看:jsfiddle

An alternative answer if you worry about performance.

var isInteger1 = function(a) {
    return ((typeof a !== 'number') || (a % 1 !== 0)) ? false : true;
};

Load test results compared to Zafer's answer in 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

See for yourself: jsfiddle

迷途知返 2024-09-24 05:31:56
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" />
var isWidthAnInteger = isInteger(document.getElementById('width').value);
var isHeightAnInteger = isInteger(document.getElementById('height').value);
if (isWidthAnInteger && isHeightAnInteger) {
    // TODO: window.open
}

where you have the following textboxes:

Width: <input type="text" id="width" name="width" />
Height: <input type="text" id="height" name="height" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文