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: