我正在尝试制作一个函数来检查一个单词是否是回文。如果这个词是回文,它将返回true,否则将返回false。"为了检查回文,你需要删除所有非字母数字字符(标点符号、空格和符号),并将所有字符都改为小写
我们将传递不同格式的字符串,例如"racecar"、"racecar"one_answers"racecar"等。"
我的代码是:
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";
}
}
有人能告诉我这个代码出了什么问题吗?
这个解决方案怎么样。
function palindrome(str) {
str = str.toLowerCase().replace(/[^a-z0-9]+/g,"");
return str === str.split("").reverse().join("");
}
它去掉非字母数字字符,变为小写,并返回true
|false
"字母数字"表示字母和数字字符。试试这样的东西:
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
它不起作用,因为它总是返回一个"true",因为如果不是回文,则返回一个字符串,该字符串的布尔值为true。