我试图制作一个能检查单词是否为回文的函数。如果单词是回文,它将返回true,否则它将返回false。 "您需要删除所有非字母数字字符(标点符号,空格和符号)并将所有小写字母转换为小写以便检查回文。
我们将传递不同格式的字符串,例如" racecar"," RaceCar"和"种族CAR"等等。"
我的代码是:
function palindrome(str) {
str = str.toLowerCase().replace(/[^a-z]+/g,"");
if (str === str.split("").reverse().join("")){
return str;
} else {
return "This is not a palindrome";
}
}
有人可以告诉我这个代码有什么问题吗?
答案 0 :(得分:2)
这个解决方案怎么样。
function palindrome(str) {
str = str.toLowerCase().replace(/[^a-z0-9]+/g,"");
return str === str.split("").reverse().join("");
}
它删除非字母数字字符,变成小写,然后返回true
| false
答案 1 :(得分:1)
"字母数字"表示字母和数字字符。尝试这样的事情:
function isPalindrome(str) {
str = str.toLowerCase().replace(/[^a-z0-9]+/g, '');
return str === str.split('').reverse().join('');
}
isPalindrome('racecar')
// => true
isPalindrome('race car')
// => true
isPalindrome('race caR')
// => true
答案 2 :(得分:0)
它不起作用,因为它总是返回" true"因为如果不是回文,那么返回一个字符串,它被评估为布尔值为真。