Comment détecter si string contient une lettre majuscule en PHP

Je n'ai pas trouvé de fonction pour ça. Je suppose que je dois utiliser regex?

j'essaie de faire des redirections html en php dans les cas où l'url contient au moins une lettre majuscule.

exemple:http://www.domain.com/Michael_Jordan doit être redirigé vers http://www.domain.com/michael_jordan - le seul problème est que je ne semble pas trouver un script pour détecter si au moins une lettre capitale existe.

16
demandé sur Bob Cavezza 2010-12-13 09:31:13

5 réponses

une expression régulière devrait être capable de travailler, vous pouvez utiliser preg_match et [A-Z]

if(preg_match('/[A-Z]/', $domain)){
 // There is one upper
}
28
répondu RageZ 2010-12-13 06:37:31
if (strtolower($url) != $url){
  //etc...
27
répondu Tyler Eaves 2010-12-13 06:33:39

Vous pouvez également essayer cette

if (!ctype_lower($string)) {
    // there is at least une uppercase character
}

ne sais pas si c'est plus efficace que les deux autres méthodes proposées.

4
répondu Ateszki 2012-04-11 19:10:17
preg_match_all('%\p{Lu}%usD', 'aA,éÁ,eE,éÉ,iI,íÍ,oO,óÓ,öÖ,őŐ,uU,úÚ,üÜ,űŰ', $m);
echo '<pre>';
var_dump($m);
echo '</pre>';

Testé avec les caractères hongrois utf-8, [A-Z] est pour latin1 seulement.

1
répondu inf3rno 2012-05-23 19:34:24
$mydir = "C:\Users\John" ;

print preg_match('/^[A-Z]:\.*/', $mydir, $match )."\n" ;
print $match[0]. " preg match \n" ;

Produit:

1
C: preg match

Ceci suggère que les parenthèses ne sont pas nécessaires-pour un match, au moins

Regardez ceci pour être plus spécifique pour votre application: PHP pour rechercher les mots mélangés majuscules et minuscules dans les chaînes?

0
répondu johnbessa 2017-05-23 10:31:37