JSFiddle - React, Tailwind, and code Playground
JavaScript
function normalize(s) {
return s.toLowerCase().replace(/[^a-z]/g, "");
}
Object.defineProperty(String.prototype, "isPalindrome", {
get: function () {
var rev = this.split("").reverse().join("");
return normalize(rev) === normalize(this);
}
});
Object.defineProperty(String.prototype, "isPalindromeAcademic", {
get: function () {
var palindrome = true,
i, to;
(function() {
for (i = 0, to = this.length / 2; i < to; ++i) {
if (this[i] !== this[this.length - i - 1]) {
palindrome = false;
break;
}
}
}).call(normalize(this));
return palindrome;
}
});
console.assert("".isPalindrome, "Complex high-level");