检查字符串是在PHP中的某种格式

时间:2015-01-02 06:40:19

标签: php

我想在php中检查字符串是否采用以下格式,

DD/MM/YYYY, HH:MM: Any string message 1, may contain any special character

上面的语法应该与传入的字符串匹配 例如:

 12/01/2015, 10:15: Happy New Year 2015

如何在php中检查这种格式?

1 个答案:

答案 0 :(得分:1)

$string = "12/01/2015, 10:15: Happy New Year 2015";

if(preg_match('/\d{2}\/\d{2}\/\d{4}\,\ \d{2}:\d{2}:.*/', $string)) {
        echo "$string passed check.";
}

现在,如果你想确保第一部分是有效的DateTime格式,你也可以这样做,但是你的请求并不清楚。

修改:根据您的跟进,您可以执行以下操作:

$string = "12/01/2015, 10:15: Happy New Year 2015";

function validate($string)
{
        if(preg_match('/\d{2}\/\d{2}\/\d{4}\,\ \d{2}:\d{2}:.*/', $string)) {
                $split = preg_split('/:\ /', $string);
                $date = str_replace(', ', ':', $split[0]);
                $d = DateTime::createFromFormat('m/d/Y:H:i', $date);
                return $d && $d->format('m/d/Y:H:i') == $date;
        }
        return false;
}

var_dump(validate($string));

它只提取日期部分,并验证它是否是有效的DateTime对象。我离开preg_match()因为它将确保进入的数据适合日期验证。

相关问题