2013-07-25 64 views
1

我試圖在PHP中使用正則表達式來匹配使用preg_match函數的DOB格式。我想不出什麼問題。下面是代碼和我提出的錯誤。PHP:正則表達式未知修飾符'{'錯誤

$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匹配]:未知的修飾詞 '{' 在C: \瓦帕\ WWW \第15行

線15是指符號\ starsign.php,

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

您忘記了表達式分隔符,即正斜槓。 –

回答

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

+第一。雖然目前還不清楚你修好了什麼。 –

+2

提供簡單的代碼作爲解決方案並不壞,最好還是提供一個解釋:) – 2013-07-25 23:31:44

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

相關問題