Comment vérifier si la lettre est supérieure ou inférieure en PHP?
j'ai des textes en UTF-8 avec des caractères diacritiques, et je voudrais vérifier si la première lettre de ce texte est en majuscules ou en minuscules. Comment faire cela?
9 réponses
function starts_with_upper($str) {
$chr = mb_substr ($str, 0, 1, "UTF-8");
return mb_strtolower($chr, "UTF-8") != $chr;
}
Notez que mb_substr est nécessaire d'isoler correctement le premier caractère.
Utiliser ctype_upper
pour vérifier les majuscules:
$a = array("Word", "word", "wOrd");
foreach($a as $w)
{
if(ctype_upper($w{0}))
{
print $w;
}
}
Essayé ?
$str = 'the text to test';
if($str{0} === strtoupper($str{0})) {
echo 'yepp, its uppercase';
}
else{
echo 'nope, its not upper case';
}
je n'ai pas envie de numéros et d'autres pour être un haut de char, donc j'utilise:
if(preg_match('/[A-Z]$/',$char)==true)
{
// this must be an upper char
echo $char
}
echo $char < 'a' ? 'uppercase' : 'lowercase';
Lorsqu'un caractère string est moulé en entier, il est évalué à son numéro ASCII. Comme vous le savez dans la table ASCII d'abord il y a quelques caractères de contrôle et d'autres. Puis les lettres majuscules de l'alphabet Latin. Et puis les lettres minuscules de l'alphabet Latin. Ainsi, vous pouvez facilement vérifier si le code d'une lettre est plus petit ou plus grand que le petit caractère latin a
.
BTW c'est autour de deux fois plus rapide qu'une solution avec des expressions régulières.
notez que PHP fournit le ctype
famille ctype_upper.
vous devez configurer la locale correctement via setLocale () le premier à le faire fonctionner avec UTF-8.
Voir le commentaire ctype_alpha par exemple.
Utilisation:
if ( ctype_upper( $str[0] )) {
// deal with 1st char of $str is uppercase
}
Qu'en est juste:
if (ucfirst($string) == $string) {dosomething();}
if(ctype_upper(&value)){
echo 'uppercase';
}
else {
echo 'not upper case';
}
Si vous voulez, avec une belle fonction, j'ai utilisé ceci:
function _is_upper ($in_string)
{
return($in_string === strtoupper($in_string) ? true : false);
}
alors il suffit d'appeler..
if (_is_upper($mystring))
{
// Do....
}