Podemos declarar uma função e chama-la:
function palindromo(palavra) {
let palavraInvertida = palavra.split('').reverse('').join(''); // O .split irá colocar a palavra num array, o.reverse irá inverter todas as palavras e o .join irá tirar as letras do array e converter num texto.
if (palavra == palavraInvertida) { // Condição SE a palavra for igual a palavra invertida retornará true, caso não, false.
alert(`A palavra "${palavra}" é um palíndromo!`); // True
} else {
alert(`A palavra "${palavra}" NÃO é um palíndromo!`); // False
}
}
palindromo(prompt('Digite uma palavra para verificar se é um palíndromo:'));
Porém, ao digitar uma frase complexa como "Subi no ônibus" (que é palíndromo), irá retornar como false:
Podemos resolver utilizando o RegExp:
function palindromo(palavra) {
let regExp = /[\W_]/g;
let palavraP = palavra.toLowerCase('').replace(regExp, ''); // O .toLowerCase irá converter toda a frase em letras minúsculas e o .replace irá utilizar o RegExp para remover os caractéres (virgulas, pontos finais, exclamações e etc).
let palavraInvertida = palavraP.split('').reverse('').join(''); // O .split irá colocar a palavra num array, o.reverse irá inverter todas as palavras e o .join irá tirar as letras do array e converter num texto.
if (palavraP == palavraInvertida) {
alert(`A palavra "${palavra}" é um palíndromo!`);
} else {
alert(`A palavra "${palavra}" NÃO é um palíndromo!`);
}
}