如何检查字符串是否为回文JavaScript[已关闭!]
我正在尝试做一个函数,检查一个单词是否是回文。如果单词是回文,它将返回true,否则将返回false。“为了检查回文,您需要删除所有非字母数字字符(标点、空格和符号),并将所有字符都改为小写。” 我们将传递不同格式的字符串,例如“racecar”、“racecar”和“race CAR”等。” 我的代码是:如何检查字符串是否为回文JavaScript[已关闭!],javascript,Javascript,我正在尝试做一个函数,检查一个单词是否是回文。如果单词是回文,它将返回true,否则将返回false。“为了检查回文,您需要删除所有非字母数字字符(标点、空格和符号),并将所有字符都改为小写。” 我们将传递不同格式的字符串,例如“racecar”、“racecar”和“race CAR”等。” 我的代码是: function palindrome(str) { str = str.toLowerCase().replace(/[^a-z]+/g,""); if (str === str.
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";
}
}
谁能告诉我这个代码有什么问题吗 它不起作用,因为它总是返回一个“true”,因为如果不是回文,则返回一个字符串,其值为布尔值为true。“字母数字”表示字母和数字字符。试着这样做:
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
这个解决方案怎么样
function palindrome(str) {
str = str.toLowerCase().replace(/[^a-z0-9]+/g,"");
return str === str.split("").reverse().join("");
}
它去掉非字母数字字符,转换成小写,并返回
true
|false
检查:它以什么方式不工作?它看起来对我很有效,除了你可能需要返回true
和false
而不是str
和“这不是回文”
没有问题吗?似乎至少对我有用Lindrome('a3a')返回aa
@unatasanatarai。替换(/[^a-z0-9]+/g,”)
谢谢!你能解释一下为什么没有布尔逻辑这是可行的吗?这让我有点困惑,因为问题陈述要求我根据单词是否为回文返回“真”或“假”值。比较,即===
(或==
)返回真或假。因此,该函数将解析后的输入字符串与其相反的字符串进行比较。如果两者相等,则返回true
当然!我总是忘记等式和严格等式比较器比较两段代码并给出正确或错误的声明。