-1

在进行基本的数学测验时,我想要一些类似的东西:

问题:

1)写出正确答案:

一)1+?=5

b) 3+?=5

c) 5+?=5

2)写出正确答案:

a) 1+4 =?

b) 3+?=5

c) ?+0 =5

请注意,在问题编号 ONE 中,只有Char后面的+要被屏蔽或隐藏。

然而,在第二个问题中,Chars 将被随机隐藏。

->测验将由老师正确提交为:

a) 1+4 =5

b) 3+2 =5

c) 5+0 =5

但是,REGEX应该在标志之后随机进行测验一的掩蔽或隐藏+然后测验二。

我尝试了什么?

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+)/

这捕获了三个值。用问号替换其中一个以获得您想要的。

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 回答