2015-07-07 2 views
0

Я пытаюсь написать funciton в Javascript, который удалит все пробелы и знаки препинания в предложении, а затем проверьте, является ли это палиндром. Я получил большую часть работы, но он не удалит пространство после периода в канале. Как я могу это сделать?удалить пробел после периода javascript

function palindrome(str) { 

    str = str.toLowerCase(); 
    str = str.replace(/\s+/g, ''); 
    str = str.replace(/,/g , ""); 
    str = str.split('.').join(' '); 

    document.write(str); 

    if(str.split("").reverse().join("") === str) { 
     return true; 
    } 
    else { 
     return false; 
    } 
} 

palindrome("A man, a plan, a canal. Panama"); 
+2

Перемещают 'ул = str.split (' ') присоединиться (''); строка' 'перед тем, ул = str.replace (/ \ S +/г, ''). '. Вы заменяете все пробелы и снова соединяете их с помощью 'str = str.split ('.'). Join ('');' – Kamehameha

ответ

0

Существует, вероятно, лучший способ сделать это с regx, но вы могли бы просто

yourString.split(". ").join(""); 
1

Я хотел бы использовать один заменить на пробелы, запятые и периоды

function palindrome(str) { 
 

 
    str = str.toLowerCase(); 
 
    str = str.replace(/[\s,\.]+/g, ''); 
 
    document.write(str); 
 

 
    if(str.split("").reverse().join("") === str) { 
 
     return true; 
 
    } 
 
    else { 
 
     return false; 
 
    } 
 
} 
 

 
console.log(palindrome("A man, a plan, a canal. Panama"));

+0

Я просто использовал тот же код, я не говорю, что все оптимально, но ' replace' - это то, что ему нужно, чтобы код работал – depperm

+0

Вам не нужно скрывать '.' внутри' [] '. –

1

Проверьте этот способ:

function palindrome(str) { 
    str = str.match(/[a-z]+/gi).join("").toLowerCase(); 
    document.body.innerHTML = str; 
    return(str.split("").reverse().join("") === str); 
} 

palindrome("A man, a plan, a canal. Panama"); 

Live here.

Смежные вопросы