Michel Gelin: Reguläre Ausdrücke und setlocale()

Beitrag lesen

Hallo zusammen,

ich arbeite an nem Formmailer. Dieser soll anhand Regulärer Ausdrücke (RA) die Felder validieren. Leider bin ich der RA nicht wirklich mächtig: Mir machen die Umlaute Mühe.

Ich habe folgenden Code:

  
setlocale(LC_ALL, 'de_DE');  
[...]  
$pruefung = array(  
 'email' => '/^[\w.+-]{2,}\@[\w.-]{2,}\.[a-z]{2,6}$/',  
 'betreff' => '/^[[:print:]]{3,}$/',  
 'mitteilung' => '/^[[:print:][:space:]]{10,}$/',  
 'namevorname' => '/^[[:print:][:space:]]{3,}$/',  
 'telefon' => '/^[[:print:][:space:]]{0,}$/',  
  )  
[...]  
  if(isset($pruefung[$parameter])) {  
    if(!preg_match($pruefung[$parameter], $wert)){  
[usw.]  

Nun habe ich aber bemerkt, dass [:print:] trotz setlocale die Umlaute nicht zu beachten scheint. Wie kann ich nun die Umlaute und auch das ß integrieren? Macht es überhaupt Sinn mit [:print:] zu arbeiten?
Leider habe ich hier und auch auf google noch keine befriedigende Antwort auf das Problem gefunden :-(

Lieber Gruss,
Michel