PHP:正则表达式未知修饰符'{'错误

时间:2013-07-25 23:25:20

标签: php regex preg-match

我试图在PHP中使用Regex来匹配使用preg_match函数的DOB格式。

我无法弄清问题是什么。以下是我提供的代码和错误。

$name = $_POST["name"]; 
$dob  = $_POST["dob"];

testDob($dob);

function testDob($dob) {
    if (preg_match("[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}", $dob)) {
          echo "A match was found.";
        } 
        else {
          echo "A match was not found.";
        }
}

我得到的错误是:

  

SCREAM:忽略错误抑制   (!)警告:preg_match()[function.preg-match]:第15行的C:\ wamp \ www \ sign \ starsign.php中的未知修饰符'{'

第15行指的是

"if (preg_match("[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}", $dob)) {".

2 个答案:

答案 0 :(得分:3)

您需要在模式周围添加分隔符,如下所示:

if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}/", $dob)) {

或更简单地说,就像这样:

if (preg_match('#[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}#', $dob)) {

有关详细信息,请参阅the official documentation

答案 1 :(得分:2)

preg_match("#[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}#", $dob)