2016-11-06 67 views
-2
<code> 
function palindrome(str) { 
    // Good luck! 
    str=str.toLowerCase(); 
    str=str.replace(/[^\Wa-z0-9]/gi," "); 
    str=str.replace(/[.,\s]/g, ''); 
    str=str.replace(/\//g, ""); 
    str=str.replace("(", "").replace(")", "").replace("0-0", "").replace(":-", "").replace(":",""); 
    var a=str.split(""); 
    a=a.reverse(); 
    a=a.join(""); 

    if(str===a){ 
     return true; 
    } 
    else { 
     return false; 
    } 
} 

palindrome("0_0 (: /-\ :) 0-0"); 

</code> 

注:我想在這裏刪除所有的特殊字符,空格和大寫字母,並檢查,如果傳遞參數是迴文或不。我只想知道是否有一種方法可以使正則表達式簡潔到只有一行。如何讓這個Javascript正則表達式更簡潔?

+0

我想你對如何真正解決問題感到困惑。你是否試圖查看是否有任意的字符串是相同的向前和向後?你傳入的字符串不包含任何單詞,它不是迴文。您也不清楚您認爲字符串中有效的字符。請在提問時儘可能詳細。 –

+0

函數迴文(str){ str = str.toLowerCase()。replace(/ [^ a-z0-9]/g,「」); return str === str.split(「」)。reverse()。join(「」)?真假; }' –

+0

@Andy Ray我想我是特定的時候說,我想檢查是否傳遞參數是迴文或現在當我通過給定的字符串它將回文如果所有其他條件都滿足,即沒有大寫,沒有特別字符和沒有空格我提到這一點以及問題....下一次我會嘗試在這裏寫下整個問題,以便它更清楚,感謝您的幫助 –

回答

2
str = str.toLowerCase().replace(/[^a-z0-9]/g, ''); 

將小寫字符串並刪除所有非字母數字字符。

+0

謝謝,這工作 –