PHP preg_match yyyy-mm-dd

Pet*_*son 1 php regex


我需要一些正则表达式的帮助.我正在尝试验证字符串是否看起来像'yyyy-mm-dd',这是我的代码到目前为止:

case "date":
                if (preg_match("/^[0-9\-]/i",$value)){
                    $date = explode("-",$value);
                    $year = $date[0];
                    $month = $date[1];
                    $day = $date[2];
                    if (!checkdate($month,$day,$year))
                    {
                        $this->errors[] = "Ogiltigt datum.";
                    }
                } else {
                    $this->errors[] = "Ogiltigt datum angivet.";
                }
            break;
Run Code Online (Sandbox Code Playgroud)

我对正则表达式很新,谢谢.

Cas*_*yte 8

你可以用这个:

if ( preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}\z/', $value) ) { ...
Run Code Online (Sandbox Code Playgroud)

但是这种模式可以验证类似的东西 0000-40-99

图案细节:

/         # pattern delimiter
^         # anchor: start of the string
[0-9]{4}  # four digits
-         # literal: -
[0-9]{2}
-
[0-9]{2}
\z        # anchor: end of the string
/         # pattern delimiter
Run Code Online (Sandbox Code Playgroud)