簡體   English   中英

日期/時間驗證所需的正則表達式

[英]Regular expression needed for date/time validation

我需要以下日期/時間格式的PHP 5正則表達式:

2010年7月10日15:00

(2位空格3個字符空格4位空格2位冒號2位)

字符大小寫無關緊要,並且唯一允許的輸入是az,0-9,空格,冒號

提前致謝。

這與您的規范完全匹配,該規范允許任何值作為月份值。

如您所見,我對日期的每個部分進行了分組,以便您可以輕松地重新格式化日期。

如果字符串不匹配,則$ m將為0。

linux-t77m:/home/vinko$ more preg.php
<?php
$d = "10 Jul 2010 15:00";
$m = preg_match("/(\d{2})\s([a-z]{3})\s(\d{4})\s(\d{2}):(\d{2})/i",$d,&$matches);
print_r($matches);
?>
linux-t77m:/home/vinko$ php preg.php
Array
(
    [0] => 10 Jul 2010 15:00
    [1] => 10
    [2] => Jul
    [3] => 2010
    [4] => 15
    [5] => 00
)

為了確保您只有有效的月份,可以改用此正則表達式

$m = preg_match("/(\d{2})\s(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\s(\d{4})\s(\d{2}):(\d{2})/i",$d,&$matches);

但是 ...現在您只匹配英語月份。

這將很快變得笨拙。 我強烈建議您使用日期時間處理庫,並讓它處理所有這些問題。

暫無
暫無

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

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