用于忽略日期格式的空格的正则表达式

时间:2014-09-09 06:29:11

标签: php regex

我正在尝试创建reg_exp以匹配给定的日期字符串。在该日期,可以使用以下格式的字符串

01.12.1990
01. 12. 1990

我为第一种格式创建了reg_exp(即),在日,月,年之间没有空格。但它也不适用于第二种格式。我如何制作应该同时支持并获取日期的reg_exp?

我的reg_exp在下面,

$dateString = "01.12.1990";
preg_match("/^(0[1-9]|[1-2][0-9]|3[0-1]).(0[1-9]|1[0-2]).[0-9]{4}$/",$dateString))

3 个答案:

答案 0 :(得分:1)

使用\ s 阅读有关Escape

的更多信息
$dateString = "01 . 12 . 1990";
preg_match_all("/^(0[1-9]|[1-2][0-9]|3[0-1])\s*.\s*(0[1-9]|1[0-2])\s*.\s*[0-9]{4}$/is",$dateString,$res);
print_r($res);

答案 1 :(得分:0)

以下内容并使用str_replace()将回显:

01.12.1990
Match
<?php
$dateString = "01. 12. 1990"; 
$dateString = str_replace(' ', '', $dateString);

echo $dateString;

if( preg_match("/^(0[1-9]|[1-2][0-9]|3[0-1]).(0[1-9]|1[0-2]).[0-9]{4}$/",$dateString)) {
echo "<br>";
echo "Match";
}

else{
echo "<br>";
echo "No match";
}

如果使用带有字母的$dateString = "01. 12. 1990x";将回显

01.12.1990x
No match

答案 2 :(得分:0)

为什么不按 strftime 处理日期? http://php.net/manual/en/function.strftime.php