-1

基本的な数学クイズを作成するには、次のようなものが必要です。

質問:

1)正しい答えを書きなさい:

a) 1+? =5

b) 3+? =5

c) 5+? =5

2)正しい答えを書きなさい:

a) 1+4 =?

b) 3+? =5

c) ?+0 = 5

質問番号 1 では、 のChar後にのみ+マスクまたは非表示にすることに注意してください。

ただし、問題番号 2 では、Chars をランダムに非表示にする必要があります。

->クイズは、教師によって次のように正しく提出されます。

a) 1+4 = 5

b) 3+2 = 5

c) 5+0 =5

ただし、記号の後REGEXにクイズ 1 をマスキングまたは非表示にし、+次にクイズ 2 をランダムに行う必要があります。

私は何を試しましたか?

str.replace(/\+\d/,"+?") //this somehow works for the number after the+sign

何をする必要があるか。

1) 数値のランダムマスキングの正規表現。

2) [重要] , のようなもの: 1+4=5, 一致する方法のみ (太字) 1 +4 =5 (5 の前の等号を含む)

これは説明のために簡単にレイアウトされていることに注意してください...実際のクイズは代数微積分、および積分の部分です..オンラインにアップロードされた回答付きのクイズを持つことは、機関による厳粛な要求ですが、何らかの方法でいくつかを使用してくださいクイズの一部を学生に隠すための魔法のプログラミング... 例で示されているように、 1 + 4 = 5ほど単純ではありません。それがREGEXが登場した理由です

事前に感謝

4

1 に答える 1

2

この正規表現を使用して、数式を個々の部分に分割します。

/(\d+)\s*\+\s*(\d+)\s*=\s*(\d+)/

これにより、3 つの値が取得されます。それらの 1 つを疑問符に置き換えて、必要なものを取得します。

window.mask = function()
{
    var problemText = $("#problem").val();

    var problemSplit = problemText.match(/(\d+)\s*\+\s*(\d+)\s*=\s*(\d+)/);

    $("#masked1").html("? + " + problemSplit[2] + " = " + problemSplit[3]);
    $("#masked2").html(problemSplit[1] + " + ? = " + problemSplit[3]);
    $("#masked3").html(problemSplit[1] + " + " + problemSplit[2] + " = ?");
}

完全な例: http://jsfiddle.net/VAhvz/2/

于 2013-10-15T03:58:49.933 に答える