По мне так перечислять все возможные знаки это неоптимально, проще - const isPalindrome = str => { const filteredString = str.replace(/[^\p{L}]/gu, '').toLowerCase(); return filteredString === filteredString.split('').reverse().join(''); }; str.replace(/[^\p{L}]/gu, '') - оставляем в строке только буквы и всё) теперь любая строка палиндром даже с эмозди const test = 'А$роза упала000 н 👺👺👺 а, лапу? Азор6262626262@#$%$#@@#$%а😅!' будет возвращать true
от души ❤
С реплейсом неплохо! Я через filter прогонял, но реплейс лучше!
Спасибо, всё быстро и по делу, я как раз вспомнил, что сначала сплит-реверс-джойн, а потом улучшаешь
Спасибо, отличный разбор!)
По мне так перечислять все возможные знаки это неоптимально, проще -
const isPalindrome = str => {
const filteredString = str.replace(/[^\p{L}]/gu, '').toLowerCase();
return filteredString === filteredString.split('').reverse().join('');
};
str.replace(/[^\p{L}]/gu, '') - оставляем в строке только буквы и всё)
теперь любая строка палиндром даже с эмозди
const test = 'А$роза упала000 н 👺👺👺 а, лапу? Азор6262626262@#$%$#@@#$%а😅!'
будет возвращать true