我试图做的是,如果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?????"

08-03 13:45