PHP - Determinar si cadena es minúscula, mayúscula o mixta

Comprobar si una cadena es minúscula o mayúscula en PHP

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.

PHP - Determinar si cadena es minúscula, mayúscula o mixta
PHP – Determinar si cadena es minúscula, mayúscula o mixta

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í.

 

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *