freeCodeCamp

Palindrome Checker


    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: