JSFiddle - React, Tailwind, and code Playground

by Scott Kaye

JavaScript

Object.defineProperty(String.prototype, "isPalindrome", {
    get: function () {
        function normalize(s) {
            return s.toLowerCase().replace(/[^a-z]/g, "");
        }
        var rev = this.split("").reverse().join("");
        return normalize(rev) === normalize(this);
    }
});

Object.defineProperty(String.prototype, "isPalindrome2", {
    get: function () {
        var palindrome = true;
        var i, len;
        for (var i = 0, len = this.length; i < len; ++i) {
            console.log(this[i].test("[a-z]"));
            if (this[i] !== this[len - i - 1]) {
                palindrome = false;
                //break;
            }
        }
        return palindrome;
    }
});

console.clear();
/*
console.assert("A man, a plan, a canal, Panama".isPalindrome);
console.assert(!"one two three".isPalindrome);
console.assert("racecar".isPalindrome);
console.assert("racECar".isPalindrome);
*/
console.assert("A man, a plan, a canal, Panama".isPalindrome2, "Complex2");
console.assert(!"one two three".isPalindrome2, "Not2");
console.assert("racecar".isPalindrome2, "racecar2");
console.assert("racECar".isPalindrome2, "racECar2");