Reg Exp用于忽略日期格式中的空白


Reg Exp For Ignoring White Space In Date Format

我正在尝试创建用于匹配给定日期字符串的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))

使用''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);

以下和使用str_replace()将回显:

1990年12月1日火柴
<?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";将回声

1990年12月1日没有匹配

为什么不使用strftime的日期?http://php.net/manual/en/function.strftime.php