如何仅检查数字(包括负数)?

发布于 2025-01-06 00:02:18 字数 372 浏览 1 评论 0原文

如何检查仅从 -10 负数到 +10 正数的数字?

这是我所拥有的,但我认为它不安全:

if(isset($_POST['number']) && ctype_digit($_POST['number']) && $_POST['number']>=-10 && $_POST['number']<=10){
    //do something
}

并且形式:

Input a number between -10 and 10: <input type="text" name="number" size="5" />

how can I check for numbers only from -10 negative to +10 positive?

This is what I have, but I think it's not safe:

if(isset($_POST['number']) && ctype_digit($_POST['number']) && $_POST['number']>=-10 && $_POST['number']<=10){
    //do something
}

and the form:

Input a number between -10 and 10: <input type="text" name="number" size="5" />

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

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

发布评论

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

评论(2

雪花飘飘的天空 2025-01-13 00:02:18
if( isset($_POST['number'])) {
    $num = intval($_POST['number']);
    if( $num >= -10 && $num <= 10) {
        // do something
    }
}

还有其他方法,但只有这个有效。任何无法转换为数字的内容都将被视为零。如果这不是所需的行为,请添加:

&& "".$num == $_POST['number']

到内部 IF 语句,以确保没有从输入中删除非数字字符。

if( isset($_POST['number'])) {
    $num = intval($_POST['number']);
    if( $num >= -10 && $num <= 10) {
        // do something
    }
}

There are other ways, but that one will work. Anything that can't be converted to a number will be treated as zero. If this is not desired behaviour, add:

&& "".$num == $_POST['number']

To that inner IF statement, to ensure that no non-numeric characters were removed from the input.

稚然 2025-01-13 00:02:18

检查变量是否是包含零和负值的数字

$x = '-22';
if (isNumber($x, ['zero','negative']))
    echo 'Yes';
else
    echo 'No';

isNumber($x, $includes=[])
{       
    if (is_int($x)) {
        if ($x === 0) {
            if (in_array('zero', $includes))
                return true;
        } elseif ($x < 0) {
            if (in_array('negative', $includes))
                return true;
        } else
            return true;
    } elseif (is_string($x)) {
        if ($x == '0') {
            if (in_array('zero', $includes))
                return true;
        } elseif ($x[0] == '-') {
            if (in_array('negative', $includes))
                return ctype_digit(substr($x, 1));
        } else
            return ctype_digit($x);
    }
}

Check whether a variable is a number including zero and negative values

$x = '-22';
if (isNumber($x, ['zero','negative']))
    echo 'Yes';
else
    echo 'No';

isNumber($x, $includes=[])
{       
    if (is_int($x)) {
        if ($x === 0) {
            if (in_array('zero', $includes))
                return true;
        } elseif ($x < 0) {
            if (in_array('negative', $includes))
                return true;
        } else
            return true;
    } elseif (is_string($x)) {
        if ($x == '0') {
            if (in_array('zero', $includes))
                return true;
        } elseif ($x[0] == '-') {
            if (in_array('negative', $includes))
                return ctype_digit(substr($x, 1));
        } else
            return ctype_digit($x);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文