2010-11-10 15 views
0

Je suis tombé sur ce php ucfirst() pour mettre en majuscule le premier caractère de chaque mot d'une chaîne. Mais comment puis-je utiliser l'expression régulière et preg_match() pour vérifier, puis afficher le message d'erreur?preg_match pour vérifier la majuscule de la première lettre de chaque mot dans une chaîne

if (preg_match('/\b\p{Ll}/', $mem_titlename)) 
{ 
    $error = true; 
    echo '<error elementid="mem_titlename" message="TITLE - please use uppercase for each word."/>'; 
} 

pas sûr de ce que l'expression signifie dans l'exemple ci-dessus, mais je l'ai eu quelque part qui fait le même travail que ucfirst() ...

Répondre

5

Pourquoi utiliser une expression régulière? Il semble inutile si ucwords() fait ce que vous voulez. Si oui, juste ce qui suit:

if (ucwords($mem_titlename) == $mem_titlename) { 
    $error = true; 
    echo '<error elementid="mem_titlename" message="TITLE - please use uppercase for each word."/>'; 
} 

Notez également que ucwords() fait ce que vous décrivez, pas ucfirst(). http://www.php.net/manual/en/function.ucwords.php

+1

+1. Il n'est pas nécessaire d'utiliser des expressions régulières pour une tâche facile comme celle-ci. – You

+0

l'ai eu! Merci beaucoup! – laukok

+0

@You, d'accord. Bien que ce soit un super outil, je les vois malheureusement trop souvent dans les * mauvaises * instances que dans les * bonnes *. –

Questions connexes