确定给定字符串是否为有效回文。 JS
Determine whether or not a given string is a valid palindrome or not. JS
回文是一个单词、短语、数字或其他符号或元素序列,其含义在正向或反向的解释方式相同。著名的例子包括 "Amore, Roma"、"A man, a plan, a canal: Panama" 和 "No 'x' in 'Nixon'"。 - 维基百科
我们的目标是确定给定字符串是否为有效回文。
测试用例:
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
未定义,但我不明白为什么?
我通过以下更改尝试了您的示例,它适用于 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 的一部分——具体的错误消息和您的环境的一些描述应该有助于解决这个问题。
回文是一个单词、短语、数字或其他符号或元素序列,其含义在正向或反向的解释方式相同。著名的例子包括 "Amore, Roma"、"A man, a plan, a canal: Panama" 和 "No 'x' in 'Nixon'"。 - 维基百科
我们的目标是确定给定字符串是否为有效回文。
测试用例:
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
未定义,但我不明白为什么?
我通过以下更改尝试了您的示例,它适用于 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 的一部分——具体的错误消息和您的环境的一些描述应该有助于解决这个问题。