簡體   English   中英

修復 php 中已棄用的 eregi function?

[英]Fix deprecated eregi function in php?

我目前正在使用 function 來確定字符串是否僅包含數字。 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

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

只需添加分隔符

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

不區分大小寫的i作為結尾的修飾符

這里有幾個選項

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

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

我會使用第一種方法,因為它會檢查值類型。 除非確實有必要,否則不應使用正則表達式(或者它可以將 10 多行代碼壓縮為 1 行)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM