Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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_Regex - Fatal编程技术网

Javascript 回文正则表达式

Javascript 回文正则表达式,javascript,regex,Javascript,Regex,我已经在freecodecampus.com上完成了这个任务。有人能告诉我为什么它会给出错误的答案吗?如果我们删除了点和标点符号,那么它是否应该返回true function palindrome(str) { // Good luck! var a = str.replace(/\s|[0-9_]|\W|[#$%^&*()]/g, "").toLowerCase(); if (a === a.split(""

我已经在freecodecampus.com上完成了这个任务。有人能告诉我为什么它会给出错误的答案吗?如果我们删除了点和标点符号,那么它是否应该返回true

     function palindrome(str) {  
        // Good luck!  
        var a = str.replace(/\s|[0-9_]|\W|[#$%^&*()]/g, "").toLowerCase();   
           if (a === a.split("").reverse().join("")) {  
        return true;  
        }   
        return false;  
       }   

 palindrome("eye");  

 palindrome("1 eye for of 1 eye.") //should return false.
请参阅代码中的注释。
replace
方法使用正则表达式将所有数字、特殊字符和空格全部替换为零。所以你得到的只是一个没有空格、数字和特殊字符的单词

在您的例子中,您将得到
eyeforofeye
,这是一个完美的回文

请参阅代码中的注释。
replace
方法使用正则表达式将所有数字、特殊字符和空格全部替换为零。所以你得到的只是一个没有空格、数字和特殊字符的单词


在您的情况下,您将得到
eyeforofeye
,这是一个完美的回文。

您正在执行一个Rube-Goldberg过程,它提供了一个过于复杂的正则表达式,可以缩短为
/[^a-z]/
,如果您执行代码,它不会返回
false

函数回文组(str){
var a=str.replace(/[^a-z]/ig',).toLowerCase();
返回a===a.split(“”).reverse().join(“”);
}
log(回文(‘赛车’);
log(回文('2A3A2'));
log(回文('eye'));
log(回文('1眼对应1眼');

log(回文('stack')
您正在通过提供一个过于复杂的正则表达式来执行Rube-Goldberg过程,该正则表达式可以缩短为
/[^a-z]/
,如果您执行代码,它不会返回
false

函数回文组(str){
var a=str.replace(/[^a-z]/ig',).toLowerCase();
返回a===a.split(“”).reverse().join(“”);
}
log(回文(‘赛车’);
log(回文('2A3A2'));
log(回文('eye'));
log(回文('1眼对应1眼');
log(回文('stack')根据您的评论“注意,您需要删除所有非字母数字字符(标点符号、空格和符号)”,您必须保留字母数字字符(即字母和数字)。因此,请删除非字母数字字符(即
[\W\u]
\W
是对
\W
的否定:
[^a-zA-Z0-9

这是通过以下方式完成的:

var测试=[
“赛车”,
“赛车”,
“赛车”,
“2A3*3a2”,
“2A3A2”,
“2_A3*3#A2”,
“一只眼睛换一只眼睛。”
];
函数回文组(str){
var a=str.replace(/[\W_3;]+/g,“”).toLowerCase();
如果(a==a.split(“”).reverse().join(“”){
返回true;
}   
返回false;
}   
console.log(test.map)(函数(a){
返回a+':'+回文(a);
}));根据您的评论“注意,您需要删除所有非字母数字字符(标点符号、空格和符号)”,您必须保留字母数字字符(即字母和数字)。因此,请删除非字母数字字符(即
[\W\u]
\W
是对
\W
的否定:
[^a-zA-Z0-9

这是通过以下方式完成的:

var测试=[
“赛车”,
“赛车”,
“赛车”,
“2A3*3a2”,
“2A3A2”,
“2_A3*3#A2”,
“一只眼睛换一只眼睛。”
];
函数回文组(str){
var a=str.replace(/[\W_3;]+/g,“”).toLowerCase();
如果(a==a.split(“”).reverse().join(“”){
返回true;
}   
返回false;
}   
console.log(test.map)(函数(a){
返回a+':'+回文(a);

}));感谢很多人,他们已经做到了;还得到了一些关于正则表达式的好信息。阅读雄辩的Javascript中的正则表达式,有人能推荐另一个更好的源代码吗?Thanx在前面 顺便说一句,答案是这样的,(对于那个些对通过项目中所有滴答声的答案感兴趣的人来说)


谢谢很多人,已经做到了;还得到了一些关于正则表达式的好信息。阅读雄辩的Javascript中的正则表达式,有人能推荐另一个更好的源代码吗?Thanx在前面 顺便说一句,答案是这样的,(对于那个些对通过项目中所有滴答声的答案感兴趣的人来说)


与其让我们进行推测,不如问问这项任务的作者?VTC不清楚。删除数字是任务的一部分吗?没错,伊利亚,这是全文;如果给定字符串是回文,则检查回文返回true。否则,返回false。回文是前后拼写相同的单词或句子,忽略标点符号、大小写和空格。注意:为了检查回文,您需要删除所有非字母数字字符(标点符号、空格和符号),并将所有字符都改为小写。我们将传递不同格式的字符串,例如“racecar”、“racecar”和“race CAR”等。我们还将传递带有特殊符号的字符串,如“2A3*3a2”、“2A3 3a2”和“2_A3*3#A2”。此正则表达式看起来过于复杂,无法满足以下要求:“需要删除所有非字母数字字符”。如果是
/[^a-zA-Z0-9]+/g
,它字面上与非字母数字字符相匹配,那该怎么办?与其让我们进行推测,为什么不问问该任务的作者呢?VTC不清楚。删除数字是任务的一部分吗?没错,伊利亚,这是全文;如果给定字符串是回文,则检查回文返回true。否则,返回false。回文是前后拼写相同的单词或句子,忽略标点符号、大小写和空格。注意:为了检查回文,您需要删除所有非字母数字字符(标点符号、空格和符号),并将所有字符都改为小写。我们将传递不同格式的字符串,例如“racecar”、“racecar”和“race CAR”等。我们还将传递带有特殊符号的字符串,如“2A3*3a2”、“2A3 3a2”和“2_A3*3#A2”。此正则表达式看起来过于复杂,无法满足以下要求:“需要删除所有非字母数字字符”。那么
/[^a-zA-Z0-9]+/g
呢,它实际上与非字母数字匹配
function palindrome(str) {
   // Good luck!
  var a = str.replace(/\s|[0-9_]|\W|[#$%^&*()]/g, "").toLowerCase();
  // Here print a 
  // a = "eyeforofeye"; which is perfect palindrome
   if (a === a.split("").reverse().join("")) {
  // will pass this condition
   return true;
   }
   return false;
  }

 palindrome("1 eye for of 1 eye.") 
function palindrome(str) {
          // Good luck!
          var a = str.replace(/[^a-z0-9]/ig, "").toLowerCase();
          if (a === a.split("").reverse().join("")) {
          return true;
          }
          return false;
          }

          palindrome("eye");