[英]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.