在PHP中修复弃用的eregi函数?

时间:2011-08-09 23:04:38

标签: php function

我目前正在使用一个函数来判断一个字符串是否只包含数字。函数is_numeric通常有效,但如果字符串包含字母,它将会中断。我正在尝试这个:

function is_signedint($val)
{
    $val = str_replace(" ", "", trim($val));
    //line below is deprecated
    $bool = eregi("^-?([0-9])+$",$val);
    if($bool == 1)
        return true;
    else
        return false;
}

无论如何,我想知道如何更换eregi系列以符合PHP6

3 个答案:

答案 0 :(得分:2)

preg_match("~^-?([0-9])+$~", $val);

只需添加分隔符

答案 1 :(得分:0)

preg_match("/^-?([0-9])+$/i",$val);

最后不区分大小写i作为修饰符

答案 2 :(得分:0)

这里有几个选项

if ($val === strval(intval($val)))

if ($val == intval($val))

我会使用第一种方法检查值类型。你不应该使用正则表达式,除非它确实是必要的(或者它可以将10多行代码压缩成1)。