Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查字符串是否为回文JavaScript[已关闭!]_Javascript - Fatal编程技术网

如何检查字符串是否为回文JavaScript[已关闭!]

如何检查字符串是否为回文JavaScript[已关闭!],javascript,Javascript,我正在尝试做一个函数,检查一个单词是否是回文。如果单词是回文,它将返回true,否则将返回false。“为了检查回文,您需要删除所有非字母数字字符(标点、空格和符号),并将所有字符都改为小写。” 我们将传递不同格式的字符串,例如“racecar”、“racecar”和“race CAR”等。” 我的代码是: function palindrome(str) { str = str.toLowerCase().replace(/[^a-z]+/g,""); if (str === str.

我正在尝试做一个函数,检查一个单词是否是回文。如果单词是回文,它将返回true,否则将返回false。“为了检查回文,您需要删除所有非字母数字字符(标点、空格和符号),并将所有字符都改为小写。”

我们将传递不同格式的字符串,例如“racecar”、“racecar”和“race 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";
  }
}

谁能告诉我这个代码有什么问题吗

它不起作用,因为它总是返回一个“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
当然!我总是忘记等式和严格等式比较器比较两段代码并给出正确或错误的声明。