用于为数学测验屏蔽或隐藏数字的Javascript正则表达式,即1+;?=5或1+;4 =?
在做一个基本的数学测验时,我想做一些如下的事情: 问题: 1) 写出正确答案: a) 1+=五, b) 3+=五, c) 5+=五, 2) 写出正确答案: a) 1+4= b) 3+=五, c) ?+0=5 请注意,在问题1中,只有用于为数学测验屏蔽或隐藏数字的Javascript正则表达式,即1+;?=5或1+;4 =?,javascript,regex,replace,char,match,Javascript,Regex,Replace,Char,Match,在做一个基本的数学测验时,我想做一些如下的事情: 问题: 1) 写出正确答案: a) 1+=五, b) 3+=五, c) 5+=五, 2) 写出正确答案: a) 1+4= b) 3+=五, c) ?+0=5 请注意,在问题1中,只有+后面的字符被屏蔽或隐藏 然而,在第二个问题中,Chars将被随机隐藏 ->教师将正确提交测验,如下所示: a) 1+4=5 b) 3+2=5 c) 5+0=5 但是,REGEX应该在+符号之后屏蔽或隐藏第一个测验,然后随机隐藏第二个测验 我试过什么? str.rep
+
后面的字符被屏蔽或隐藏
然而,在第二个问题中,Char
s将被随机隐藏
->教师将正确提交测验,如下所示:
a) 1+4=5
b) 3+2=5
c) 5+0=5
但是,REGEX
应该在+
符号之后屏蔽或隐藏第一个测验,然后随机隐藏第二个测验
我试过什么?
str.replace(/\+\d/,“+?”)//这对
+符号后的数字有效
需要做什么
1) 用于数字随机屏蔽的正则表达式
2) [重要],
例如:1+4=5,如何仅匹配(粗体)1+4=5(包括5之前的等号)
请注意,出于解释的目的,这是如此简单。。。
真正的QUIZ是代数、微积分和分部积分。。它是
该机构郑重要求进行带有答案的测验
上传到网上,但不知何故使用一些编程魔术来隐藏一些
学生测验的部分。。。它不像表中给出的1+4=5那么简单
例子。这就是REGEX出现的原因
提前增值使用此正则表达式将公式拆分为各个部分:
/(\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] + " = ?");
}
这里有一个完整的例子:关于这一点,似乎没有什么是正则表达式的工作。似乎对您来说,正则表达式是可以解决任何问题的万能锤子。不是,是。。。在大多数情况下。由于测验是从数据库加载的,所以计划是这样处理的。。。有什么害处吗?我认为这是一个典型的XY问题:@meagar,问题是关于字符串解析和替换。在JS中有什么工具比正则表达式更好呢?令人惊讶的是…它完全解决了随机屏蔽问题。。。如果你不介意的话,这个[重要的]问题是什么。(第二期)?匹配:1+4=5?+1一个用于深思熟虑的方法。。。我办公室的每个人都对你的回答印象深刻。@ErickBest,我不明白。你想比赛但在比赛中有差距?不是真的。。。有没有办法在1+4=5中只匹配1和=5?