> Faqs > Cómo validar una cadena que voy a usar como slug para una URL, en PHP

Cómo validar una cadena que voy a usar como slug para una URL, en PHP

Cómo validar una cadena para verificar que encaja con el concepto de slug (toda en minúsculas, sin espacios, compuesta por números, letras y guiones).

Quiero hacerlo para PHP y me gustaría hacerlo por medio de una expresión regular.

Respuestas

Validar un slug es bastante sencillo por medio de una expresión regular. Por ejemplo mira esta posibilidad:

^[a-z0-9-]+$

Esa expresión regular sirve para validar si una cadena es un slug válido, que indicaría estas cosas:

  • ^ sirve para indicar el comienzo de la cadena.
  • [a-z0-9-]+ busca una o más ocurrencias en la cadena de caracteres que estén en el rango de a a z, números del 0 al 9 y guiones.
  • $ indica que se ha llegado al final de la cadena.

Ahora ya, si quieres usar esta expresión regular en PHP tienes la función preg_match que permite indicar la expresión regular para validar y la cadena del slug que quieres ver si está bien formada.

Un ejemplo sería este:

$slug = "ejemplo-144";

if (preg_match('/^[a-z0-9-]+$/', $slug)) {
    echo "El slug que has introducido es válido.";
} else {
    echo "El slug que has introducido NO es válido.";
}

Si el slug cumple con los criterios establecidos en la expresión regular se irá por la parte positiva del if, mostrando un mensaje adecuado.

Espero que te sirva para tus objetivos.

Alfonso
289 11 19 16