我正在尝试创建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))
答案 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