0

** アップデート:

jsfiddle.net/terra823/WA6sX

私は基本的に、テキストINPUTを取得し、INPUTテキストをmagic_wordsという配列と比較することを検討しています。一致する場合は画面を青に、一致しない場合は画面を緑に変えます。これまでのところ、試合があると画面が青くなりますが、最初の試合が行われた後は比較を続けていないようです。関数を書くためのより良い方法を誰かが知っているなら(おそらく正規表現を使って)、助けていただければ幸いです!

**レガシー投稿:

私は、ユーザーが入力したものを取得して、それを自分の配列と比較するJavascriptコードに取り組んでいます。特定の単語と一致する場合、変更がトリガーされます。私が作業しているコードのその部分ですが、上記のイベントがトリガーされた後、ページをデフォルトの状態に戻したいと思います。つまり、ユーザーはデフォルト状態でページを開始し、書き込み中に配列から特定の単語を入力してイベントをトリガーし、入力を続けるとデフォルト状態に戻ります。これが私がその機能のために持っているものです:

function handleChange(){
        var newText=input.value;
        if (newText==oldText)return; else oldText=newText;
            set(reversed, reverse(newText));
            set(count, 'You entered '+newText.length+' characters.');
            set(orig, newText);

//魔法の言葉の配列

        var magic_words = ["cool", "brother", "fun", "sister", "apple", "orange"];

//スクリーンBG

        var box = document.getElementById("box");

// splitEndsはnewTextを取得し、スペースで文字列を分割することにより、入力されたテキストの文字列全体を単語に分割します

        var splitEnds = newText.split(" ");

//画面は最初は白です

        var color = "white";

//ユーザーが開始すると、ユーザーが開始したことを示すためだけに画面が緑色に変わります

            if(newText != " ") {
                color = "green";
            }

//すべてのmagic_wordsの配列を調べます

            for (var i = 0; i < magic_words.length; i++) {

//個別の単語に分割されたすべてのINPUT文字列テキストを確認します

                for(var x = 0; x < splitEnds.length; x++){

//ユーザーが入力を開始し、magic_wordを入力した場合画面が青に変わります

                    if(color == "white" || color == "green") 
                        if (magic_words[i] == splitEnds[x]) {
                            color = "blue"; 
                        break;
                    } 

//必要なのは、テキストが一致するかどうかを確認するためにテキストを分析し続けるように関数に指示することです。今すぐ青にこだわる

                }
            }

            box.style.backgroundColor = color;
        }

助けに感謝します。

ありがとう、そして最高、

4

1 に答える 1

0

何を探しているのかよくわかりませんが、青に変更した後、緑に戻すだけです。

          box.style.backgroundColor = color;
            setTimeout(function(){
                box.style.backgroundColor = 'green';
            },1000);
于 2013-02-27T02:36:28.857 に答える