我使用正则表达式如下在dd/mm/yyyy
格式分析日期:正则表达式问题在PHP
^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$
我检查它strfriend,这一切看起来确定。然而,在PHP与preg_match
它测试时,它不承认它:
if(!preg_match("/^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$/",trim($_POST['dob']))){
$error .= "You must enter a valid date of birth.";
}
这种情况与输入如29/10/1987
和01-01-2001
,我不知道为什么它不工作!
我也得到了以下警告:
Warning: preg_match() [function.preg-match]: Unknown modifier '.' in /home/queensba/public_html/workers/apply.php on line 18
这我不知道如何解释。
它是如何通过`“\ d”`作为其未知的转义序列? – sln 2011-02-07 21:52:53
``\\ d“`也应该有效。像下面的`\ /`一样,`\ d`不是作为php转义序列存在的,因此它对于正则表达式引擎保持esacped。 – giraff 2011-02-08 09:44:36