检查字符串是否为 php 中的特定格式
check string is in certain format in 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 中检查此格式?
$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()
留在其中,因为它将确保传入的数据适用于日期验证。
我想在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 中检查此格式?
$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()
留在其中,因为它将确保传入的数据适用于日期验证。