寻找回文的简单代码。想要做到这一点没有序列(拆分 - >反向 - >加入 - >比较)。所以我正在迭代。而且我做错了。为什么呢?
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");
答案 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_]/g
。 str
不会修改原始字符串,因为JavaScript中的字符串是不可变的。
固定代码:
.replace()
答案 1 :(得分:0)
replace
正则表达式没有按照您的想法行事。你想删除所有空格,对吧?
更改为以下内容:
str.toLowerCase().replace(/\W/g, "").split('');
**我把它编辑成应删除非字母数字的内容。