用for循环搜索回文

时间:2016-05-21 00:23:28

标签: javascript loops

寻找回文的简单代码。想要做到这一点没有序列(拆分 - >反向 - >加入 - >比较)。所以我正在迭代。而且我做错了。为什么呢?

function palindrome(str) {
str.toLowerCase().replace(/\[W_]/g, "").split('');
 var j=str.length-1;
  for (var i=0; i<str.length/2; i++)
{ 
if (str[i]!=str[j])
     return false;
  j--;

}
return true;
}


palindrome("race car");

2 个答案:

答案 0 :(得分:2)

你的正则表达式中有拼写错误。它应该是<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Guess the Number</title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <h1>Test</h1> <script> var upper = 10000; var userPick = parseInt(prompt('Pick a number between 1 and 10,000')) var computerGuess = getRandomNumber(upper); var attempts = 0; function getRandomNumber(upper) { return Math.floor(Math.random()*upper) + 1; } while(computerGuess !== randomNumber){ computerGuess = getRandomNumber(upper); attempts+=1; } document.write('<p>Your number was ' + randomNumber + '. The computer guessed this number after ' + attempts + ' attempts.</p>') </script> </body> </html> 。此外,您忘记将结果分配给/[\W_]/gstr不会修改原始字符串,因为JavaScript中的字符串是不可变的。

固定代码:

.replace()

答案 1 :(得分:0)

replace正则表达式没有按照您的想法行事。你想删除所有空格,对吧?

更改为以下内容:

str.toLowerCase().replace(/\W/g, "").split('');

**我把它编辑成应删除非字母数字的内容。