var firstChar = function(str) {
return str.slice(0, 1);
};
var lastChar = function(str) {
return str.slice(-1);
};
var middleChar = function(str) {
return str.slice(1, -1);
};
function palindrome(str) {
let newStr = str.toLowerCase().replace(/[^a-z0-9+]+/gi, '');
if (newStr.length <= 1) {
return true;
}
if (firstChar(newStr) !== lastChar(newStr)) {
return false;
}
return palindrome(middleChar(newStr));
}
document.getElementById("truepalindrome").innerHTML += palindrome("eye");
document.getElementById("falsepalindrome").innerHTML += palindrome("This is not a palindrome and thus should return false.");
Note that the code above is run upon page load, and that the "true" and "false" text below are added by the code.
palindrome("eye") returns:
palindrome("This is not a palindrome and thus should return false.") returns: