Aprende a verificar si una cadena es palíndroma o no con JavaScript.

Una cadena es palíndromo si la leemos de principio a fin y es lo mismo que de principio a fin. La lógica para detectar si una palabra es palíndromo o no en programación es muy simple, es necesario eliminar los caracteres especiales de la cadena y revertir el resultado. Si las cadenas son iguales (la filtrada y la filtrada invertida) entonces la cadena es palíndromo, bastante fácil, ¿verdad? En este artículo, le mostraremos cómo seguir fácilmente la lógica mencionada con una función de JavaScript.

Verificación con una función básica

Siguiendo la lógica mencionada, simplemente crearemos una variable que contendrá la cadena que necesitamos. Como primero, convertimos todos los caracteres de la cadena a su versión en minúsculas, luego eliminamos los caracteres especiales y finalmente comparamos las cadenas, si son iguales la función devolverá un booleano que lo confirma:

/** 
 * Una función que verifica si la cadena dada es Palindrome o no.
 * 
 * @returns {Boolean}
 */
function isPalindrome(str){
    var normalized = str.toLowerCase().match(/[a-z]/gi).reverse();
    return normalized.join('') === normalized.reverse().join('');
}

Por lo tanto, puedes convertir el método  isPalindrome proporcionando una cadena como primer argumento y esto devolverá un booleano que se da cuenta de si es o no:

if(isPalindrome("Go dog.")){
    console.log("Is Palindrome");
}else{
    console.log("It's not Palindrome");
}

Verificación con una función de prototipo

Si está dispuesto a probar si una cadena es palíndromo sin proporcionarla como primer argumento de ninguna función, siempre que la variable sea una cadena, puede crear un atajo, por así decirlo, extendiendo el prototipo String y creando su propia función para él. . De esta manera, puede llamar al isPalindromemétodo como si fuera una propiedad de la cadena, por ejemplo:

/** 
 * Una función de extensión para cadenas que le permite verificar
 * si la cadena es Palíndromo o no.
 * 
 * @returns {Boolean}
 */
String.prototype.isPalindrome = function () {
    var normalized = this.toLowerCase().match(/[a-z]/gi).reverse();
    return normalized.join('') === normalized.reverse().join('');
}

Entonces, puedes convertir el método isPalindrome para una cadena y esto devolverá un booleano que se da cuenta de si es o no:

if("Anula la Luna".isPalindrome()){
    console.log("Es palíndromo");
}else{
    console.log("No es palindrome");
}

Más ejemplos:

// True
"Ana lava lana.".isPalindrome()

// True
"Anita lava la tina.".isPalindrome()

// True
"Eva, ya hay ave.".isPalindrome()

// False
"Quesito salado".isPalindrome()

Que te diviertas ❤️!


Ingeniero de Software Senior en EPAM Anywhere. Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores