gpt4 book ai didi

PHP DD/MM/YYYY 验证

转载 作者:行者123 更新时间:2023-12-03 11:23:12 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





PHP preg_match with working regex [duplicate]

(4 个回答)


6年前关闭。




抱歉可能是一个简单的问题,但我是 PHP 和 Javascript 的新手。

我正在 PHP 中创建登录验证,要求注册用户以 DD/MM/YYYY 格式输入他们的出生日期,如果以任何其他格式输入日期,则会返回错误消息。我不确定如何做到这一点,除了使用 preg_match,但这似乎不起作用......

变量:

$DOB = $_POST['DOB'];
$error_message = '';

日期验证段
elseif (!preg_match("/^(0?[1-9]|[12][0-9]|3[01])\/\.- \/\.- \d{2}$/", $DOB))
{
$error_message = 'Invalid Date';
}

错误显示
  if ($error_message != '')
{
echo 'Error: '.$error_message.' <a href="javascript: history.back();">Go Back</a>.';
echo '</body> </html>';
exit;
}
else
{
echo'<p><strong>Form Submitted Successfully!</strong></p>';
}

这不是重复的,我尝试了其他线程,但他们的解决方案均无效。

最佳答案

您应该使用的不仅仅是正则表达式。例如,您不应该允许 31/02/2015 之类的东西,因为 2 月没有 31 日!

我有一个运行良好的功能:

function isDate($string) {
$matches = array();
$pattern = '/^([0-9]{1,2})\\/([0-9]{1,2})\\/([0-9]{4})$/';
if (!preg_match($pattern, $string, $matches)) return false;
if (!checkdate($matches[2], $matches[1], $matches[3])) return false;
return true;
}

它首先使用 preg_match检查 DD/MM/YYYY 的形式有效性,将 DD、MM 和 YYYY 部分抓取到 $matches 中大批。然后它使用内置的 PHP 函数 checkdate 检查日期本身的有效性。 .

您可以在代码中使用它,例如:
if (!isDate($DOB)) {
$error_message = 'Invalid Date';
}

关于PHP DD/MM/YYYY 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31871199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com