我想请一些帮助。我有输入字段,我想检查用户是否以这些格式输入了他的出生日期:dd/mm/yyyy
或dd-mm-yyyy
if(preg_match('/^[0-9]{2}-[0-9]{2}-[0-9]{4}$/', $_POST['dob'])){
// ok
} else {
// there's an error
}
如何更改正则表达式以匹配数字之间的'/'
或'-'
?
答案 0 :(得分:0)
将与日期格式匹配的模式放在由交替运算符分隔的非捕获组中。
if(preg_match('~^[0-9]{2}(?:-[0-9]{2}-[0-9]{4}|/[0-9]{2}/[0-9]{4})$~', $_POST['dob'])){
// ok
} else {
// there's an error
}
或强>
使用捕获组,然后通过反向引用来引用捕获字符。
if(preg_match('~^[0-9]{2}([-/])[0-9]{2}\1[0-9]{4}$~', $_POST['dob'])){
// ok
} else {
// there's an error
}