diff --git a/09_palindromes/palindromes.js b/09_palindromes/palindromes.js index 97bd050..e84e442 100644 --- a/09_palindromes/palindromes.js +++ b/09_palindromes/palindromes.js @@ -1,6 +1,7 @@ const palindromes = function (string) { - const reversed = string.split("").reverse().join(""); - if (reversed === string) { + const reversed = string.split("").reverse().join("").replace(/[\.,?! ]/g, ""); + string = string.replace(/[\.,?! ]/g, ""); + if (reversed.toLowerCase() === string.toLowerCase()) { return true; } return false; diff --git a/09_palindromes/palindromes.spec.js b/09_palindromes/palindromes.spec.js index 90d53e4..8ce5aac 100644 --- a/09_palindromes/palindromes.spec.js +++ b/09_palindromes/palindromes.spec.js @@ -4,25 +4,25 @@ describe('palindromes', () => { test('works with single words', () => { expect(palindromes('racecar')).toBe(true); }); - test.skip('works with punctuation ', () => { + test('works with punctuation ', () => { expect(palindromes('racecar!')).toBe(true); }); - test.skip('works with upper-case letters ', () => { + test('works with upper-case letters ', () => { expect(palindromes('Racecar!')).toBe(true); }); - test.skip('works with multiple words', () => { + test('works with multiple words', () => { expect(palindromes('A car, a man, a maraca.')).toBe(true); }); - test.skip('works with multiple words', () => { + test('works with multiple words', () => { expect(palindromes('Animal loots foliated detail of stool lamina.')).toBe(true); }); - test.skip('doesn\'t just always return true', () => { + test('doesn\'t just always return true', () => { expect(palindromes('ZZZZ car, a man, a maracaz.')).toBe(false); }); - test.skip('works with numbers in a string', () => { + test('works with numbers in a string', () => { expect(palindromes('rac3e3car')).toBe(true); }); - test.skip('works with unevenly spaced numbers in a string', () => { + test('works with unevenly spaced numbers in a string', () => { expect(palindromes('r3ace3car')).toBe(false); }); });