Funciones para decir si es mayúscula o minúscula en PHP
Hoy veremos cómo saber si una oración, cadena o string es minúscula en PHP, y también saber si es mayúscula.
Vamos a escribir una función que regresa un booleano indicando si la cadena pasada tiene todos los caracteres en minúscula y otra función que hace lo mismo pero con oraciones mayúsculas.
Finalmente escribiremos una tercer función que devuelve un número indicando si la cadena es mayúscula, minúscula o mixta.
Explicación general del algoritmo
Lo que tenemos que hacer es convertir la cadena a su versión minúscula (o mayúscula, dependiendo del caso) usando strtolower
o strtoupper
. En caso de que la cadena sea igual que su versión en minúscula, se dice que sí es minúscula.
Igualmente si la cadena es igual a su versión mayúscula, se dice que toda la string es mayúscula.
Saber si cadena es mayúscula
<?php
function esMayuscula($cadena)
{
# También podrías usar mb_strtoupper
return $cadena === strtoupper($cadena);
}
# Probar
$cadenas = ["Hola", "HOLA", "hola"];
foreach ($cadenas as $cadena) {
if (esMayuscula($cadena)) {
echo "$cadena es mayúscula\n";
} else {
echo "$cadena no es mayúscula\n";
}
}
Recibimos una cadena y regresamos el resultado de comparar la cadena original con su versión en mayúscula que se obtiene gracias a strtoupper
.
Saber si cadena es minúscula
<?php
function esMinuscula($cadena)
{
# También podrías usar mb_strtolower
return $cadena === strtolower($cadena);
}
# Probar
$cadenas = ["Hola", "HOLA", "hola"];
foreach ($cadenas as $cadena) {
if (esMinuscula($cadena)) {
echo "$cadena es minúscula\n";
} else {
echo "$cadena no es minúscula\n";
}
}
Usamos strtolower
. También podríamos usar mb_strtolower
en caso de que la cadena sea multibyte y tengamos la extensión habilitada.
Determinar si cadena es minúscula, mayúscula o “mixta“
Con los ejemplos de arriba podemos hacer una función que indique si una cadena es totalmente mayúscula, totalmente minúscula o mixta; es decir, que tenga mayúsculas y minúsculas mezcladas.
La función queda así:
<?php
/**
* Determina si una cadena es mayúscula, minúscula
* o mixta
*
* @author parzibyte
* @param string: $cadena: La cadena a probar
* @return int: 0 si es mixta, -1 si es minúscula y 1 si es mayúscula
*/
function determinarNotacion($cadena)
{
if ($cadena === strtoupper($cadena)) {
return 1;
}
if ($cadena === strtolower($cadena)) {
return -1;
}
return 0;
}
# Probar
$cadenas = ["Hola", "HOLA", "hola"];
foreach ($cadenas as $cadena) {
$resultado = determinarNotacion($cadena);
if ($resultado === 1) {
echo "$cadena es mayúscula\n";
} else if ($resultado === -1) {
echo "$cadena es minúscula\n";
} else {
echo "$cadena es mixta\n";
}
}
Devuelve un número entero. Si la cadena se conforma por minúsculas y mayúsculas devuelve 0, en caso de que todos los caracteres sean mayúsculas devuelve 1 y si no, -1.
Probar ejemplos
Recuerda que puedes descargar el código fuente y probarlo. Puedes probarlo en línea, desde la línea de comandos o con un servidor web.
En caso de que todavía no instales PHP mira cómo hacerlo aquí. También puedes ver cómo instalar PHP y Apache en Android.
Conclusión
Con esto podemos comprobar si una cadena es mayúscula o minúscula usando las dos primeras funciones. También podemos determinar si una cadena es mayúscula, minúscula o mixta.
Mira más sobre PHP aquí.