2011-08-09 45 views
0

我目前正在使用函數來判斷一個字符串是否只包含數字。函數is_numeric通常有效,但如果字符串包含一個字母,它將會中斷。我不是想這樣的:反正在PHP中修復棄用的eregi函數?

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

[轉換ereg表達式到preg]可能的重複(http://stackoverflow.com/questions/6270004/converting-ereg-expressions-to-preg) – mario

回答

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

只需添加分隔符

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

不區分大小寫i作爲結尾

+0

數字強化的情況下? – genesis

+0

作爲一般eregi替換不區分大小寫。也不會傷害 –

0

這裏有幾個選項

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

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

在檢查值 I型將使用第一種方法。除非真的有必要,否則不應該使用正則表達式(或者可以將10行代碼壓縮到1中)。

相關問題