确定给定字符串是否是有效的回文。 JS

时间:2016-02-29 17:51:18

标签: javascript palindrome

回文是一个单词,短语,数字或其他符号或元素序列,其含义可以在正向或反向方向上以相同的方式解释。着名的例子包括“Amore,Roma”,“A man,a plan,a canal:Panama”和“Nixon'中的'No'x'”。 - 维基百科

我们的目标是确定给定的字符串是否是有效的回文。

测试用例:

Test.assertEquals(palindrome("Amore, Roma"), true)
Test.assertEquals(palindrome("A man, a plan, a canal: Panama"), true)
Test.assertEquals(palindrome("No 'x' in 'Nixon'"), true)
Test.assertEquals(palindrome("Abba Zabba, you're my only friend"), false)

到目前为止我的代码:

function palindrome(string) {
    var str = string.toLowerCase().replace(/[^a-z]+/g,"");
    var rev= str.split("").reverse().join("");

    if (string == rev) {
        return true; 
    } else {
        return false;
    }
}

显然join未定义,但我不明白为什么?

1 个答案:

答案 0 :(得分:0)

我尝试了以下更改的示例,它适用于OSX 10.9:

function palindrome(string) {
    var str = string.toLowerCase().replace(/[^a-z]/g, "");

    var rev = str.split("").reverse().join("");

    return (str == rev);
}

自1.1版本以来,数组join()方法似乎已成为Javascript的一部分 - 特定的错误消息和环境的某些描述应该有助于解决此问题。