我试图做的是,如果checkW字符串中有一个字母在checkR中,则我希望此字母出现在var length = random.length;中。 document.write(Array(length).join(“?”)));但是代替?在字母处必须显示该字母,直到找到整个单词为止。
例如:如果我键入endu,并且已经被随机选择的国家是Nederland,我想输出此nede ??? nd,因为我们只在字符串中找到了这些字母。
<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="utf-8">
<title>Lingo spel</title>
<meta name="description" content="Lingo spel voor de eu landen en hoofdsteden.">
<meta name="Author" content="Ronald Julian Dewindt">
<link rel="stylesheet" type="text/css" href="css/style.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
<link rel="stylesheet" type="text/css" href="style.css">
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>
<h3>Lingo spel - Eu landen en hoofdsteden</h3>
<label>Typ een woord in:</label>
<input type="text" value="" id="woord">
<button type="button" onclick="lingo()">Check</button>
<br><br>
<p><b>Woorden geprobeerd!</b></p>
<p id="try">-----</p>
<script type="text/javascript">
var euLanden = new Array('Nederlands','Duitsland','Zweden');
var random = euLanden[Math.floor(Math.random() * euLanden.length)];
var random = random.toLowerCase();
var woordenG= new Array();
function lingo()
{
var woord = document.getElementById("woord").value;
var woord = woord.toLowerCase();
if(woord == "")
{
alert("U bent vergeten een woord in te typen!");
return;
}
woordenG.push(woord);
document.getElementById("try").innerHTML=woordenG;
var checkW = woord.split('');
var checkR = random.split('');
alert(checkW);
for(i=0; i<checkW.length; i++) //starts at 0++
{
alert(checkW[i]);
/*if(checkW[i] == checkR)
{
alert("Its working");
}*/
}
}
</script>
<p id="hidden"><script>
var length = random.length; document.write(Array(length).join("?"));
</script></p>
</body>
</html>
最佳答案
遍历国家名称中的所有字母,并检查它们是否出现在用户“输入”中。如果是这样,请将其附加到结果中;如果不是,则将一个问号附加到结果中:
function mask(countryName, textInput)
{
var output = "";
for(var i=0; i < countryName.length; i++)
{
if(textInput.contains(countryName[i]))
{
output += countryName[i];
}
else
{
output += "?";
}
}
return output;
}
范例:
> mask("nederland", "endu")
< "nede???nd"
注意:您在问题中的例子有缺陷;如果Lingo中的单词是
"Nederland"
,并且已经猜到了字母"ENDU"
,则输出应为"nede???nd"
,而不是"nede?????"