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");