首頁 >後端開發 >php教程 >為什麼我的 PHP ISO 日期正規表示式不符?

為什麼我的 PHP ISO 日期正規表示式不符?

DDD
DDD原創
2024-12-13 05:39:08612瀏覽

Why Isn't My PHP ISO Date Regular Expression Matching?

為什麼我的 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 中,正規表示式必須包含在分隔符號內,通常是斜線(/ ),但也可以使用雙引號(")。 /分隔符號用於定義正規表示式的開始和結束,並防止與正規表示式中的其他特殊字元發生衝突。決問題

要解決問題,請確保滿足以下條件:

正確的分隔符號:
    使用雙引號(") 將正規表示式括起來text:
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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn