我目前正在使用一个函数来判断一个字符串是否只包含数字。函数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
答案 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)。