2016-05-12 16 views
0

Ich habe ein Problem mit dem Entfernen des Plus + Symbols in '6+ months'. Ich habe versucht, den Backslash, aber es hat keine Auswirkungen darauf.Escaping + Symbol in preg_match

function degree_of_interest() 
{ 
    $program = $_REQUEST['degree_of_interest']; 
    $highest_level = $_REQUEST['college_1_degree']; 
    $start = $_REQUEST['start_date']; 

    if(!preg_match("/\A(1-2 months|3-4 months|6+ months)\Z/i",$start) 
    OR !preg_match("/\A(Bachelors)\Z/i",$highest_level) 
    OR !preg_match("/\A(JD \(Juris Doctor\))\Z/i",$program)) 
    { 
     $this->errorsArray['degree_of_interest'][] = "For $program you must have a Bachelors degree"; 
    } 

} 

Antwort

0

Bei der Arbeit mit Strings, müssen Sie alle der Zeichenfolge Escape-Regeln zusätzlich die Regex Escape-Regeln gehorchen.

Das bedeutet, dass Sie double escape müssen. Ihre Regex (als String) sollte sein:

"/\\A(1-2 months|3-4 months|6\\+ months)\\Z/i"