UNPKG

peredur-palindrome

Version:
33 lines (27 loc) 864 B
module.exports = Phrase; // Adds 'reverse' to all strings. String.prototype.reverse = function() { return Array.from(this).reverse().join(""); }; // Defines a Phrase object function Phrase(content) { this.content = content; // Returns content processed for palindrome testing. this.processedContent = function processedContent() { return this.letters().toLowerCase(); }; // Returns the letters in the content // For example: // new Phrase("Hello, world!").letters() === "Helloworld" this.letters = function letters() { return (this.content.match(/[a-z]/gi) || []).join(""); }; // Returns true for a palindrome, false otherwise this.palindrome = function palindrome() { if (this.processedContent()) { return this.processedContent() === this.processedContent().reverse(); } else { return false; } }; }