如何在PHP中验证数字字符串

时间:2012-01-16 11:04:11

标签: php

我正在寻找一种方法,可以让我检查系统中的有效ID。

他们的定义是:

  • 正面,不是0,
  • 整数,但可能大于整数
  • 以字符串或数字
  • 出现

我想知道您认为最有效的方法是验证这一点。失败的候选人是:

  • is_int(),因为它对负数有效,而且由于整数大小限制
  • is_numeric(),因为它对浮动有效,或者说,像这样具有指数部分+ 0123.45e6
  • ctype_digit()将输入转换为字符串,因为这有效:“0000”

到目前为止,我已经解决了这个问题:

preg_match('/^[1-9][0-9]*$/',(string)$id);

任何人都可以提出替代方案吗?

2 个答案:

答案 0 :(得分:3)

使用filter_var尝试FILTER_VALIDATE_INT个功能。对于有效的整数,您可以指定ranges.Probably与大小限制具有相同的限制,但为此您必须构建一个完全满足您要求的自定义函数。

答案 1 :(得分:0)

你可以使用

function vaild_id($passed_value=-1)
{
    if((is_int($passed_value)) && ($passed_value > 0)) return true;
    else return false; 
}

如果您需要

,这也允许您添加其他规则