為什麼我的 ISO 日期不符模式?
給定的正規表示式:
/^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([1-2]{1})([0-9]{1}):([0-5]{1})([0-9]{1}):([0-5]{1})([0-9]{1})$/
設計以符合「YYYY-MM-DD HH:MM:SS」格式的 ISO 樣式日期。然而,儘管滿足標準,它還是傳回 false。問題在於包含表達式的斜線 (/)。
PHP 正規表示式分隔符號
在PHP 中,正規表示式必須包含在分隔符號內,通常是斜線(/ ),但也可以使用雙引號(")。 /分隔符號用於定義正規表示式的開始和結束,並防止與正規表示式中的其他特殊字元發生衝突。決問題
要解決問題,請確保滿足以下條件:
正確的分隔符號:if(preg_match("/^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([1-2]{1})([0-9]{1}):([0-5]{1})([0-9]{1}):([0-5]{1})([0-9]{1})$/", $date) >= 1)表達式中的單引號:
if(preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2}) \'([1-2]{1})([0-9]{1}):([0-5]{1})([0-9]{1}):([0-5]{1})([0-9]{1})$/', $date) >= 1)
不要使用正規表示式,請考慮使用PHP DateTime 類,它提供更強大、更可靠的日期驗證與操作功能:
此函數傳回true有效日期,無效日期為false。它可用於驗證各種格式的日期,包括 ISO。
以上是為什麼我的 PHP ISO 日期正規表示式不符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!