node.js - 使用 Javascript 搜索字符串
问题描述
大家好,
我正在尝试测试使用用户输入的 C 程序......就像一个学习应用程序。所以 avaliator(老师)可以编写测试,我在 docker 的帮助下编译代码并取回我发送的程序的结果。之后,我验证其中一个案例测试是否失败..
为此,我有两个字符串,如下所示:
result = "input_compiled1540323505983: /home/compiler/input/input.c:9: main: Assertion `B==2' failed. timeout: the monitor command dumped core Aborted "和一个带有案例测试的数组,例如:caseTests = [" assert(A==3); // A 的值必须是 3;", " assert(B==2); // B 的值必须是 2; ", " assert(strcmp(Fulano, "Fulano")==0); //Fulano 必须等于 Fulano]我需要从我的服务器发回这样的东西:
{控制台:[真,真,真]}其中每个 true 是测试数组中每个测试的对应测试
所以,我需要测试一个字符串是否包含另一个字符串的一部分......现在我这样做了:criandoConsole = function(arrayErros, arrayResult){
var consol = arrayErros.map( function( elem ) {
var local = elem.match(/\((.*)\)/);
if(arrayResult.indexOf(local) > -1 ) {
return false;
}
else return true;
});
return consol;
}
我想知道是否有更有效的方法可以做到这一点。我正在使用nodejs作为服务器。有没有人知道更好的方法?!
ps:只是做喜欢result.contains(caseTests[0])
没有工作..
解决方案
我知道这正在改变问题,但是您能否将错误数组简化为仅包含搜索词?例如,
result = "input_compiled1540323505983: /home/compiler/input/input.c:9: main: Assertion `B==2' failed. timeout: the monitored command dumped core Aborted ";
//simplify the search patterns
caseTests = [
"A==3",
"B==2",
"strcmp(Fulano, \"Fulano\")==0"
]
criandoConsole = function(arrayErros, arrayResult){
var consol = arrayErros.map( function( elem ) {
if (arrayResult.indexOf(elem) != -1)
return false; //assert failed?
else
return true; //success?
});
return consol;
}
console.log(criandoConsole(caseTests,result));
推荐阅读
- javascript - 传播路径中的事件侦听器如何在 JavaScript 中排队
- relational-database - 是否有会自动映射代码值的关系数据库引擎?
- php - 把它变成一个 if / else 语句
- python - “不能分配给文字”是什么意思python?
- java - 如何解决 Mockito 无法模拟此类异常
- c++ - 在调用 main() 之前处理需要互斥锁的 C++ 初始化和多线程感知函数?
- css - 将固定图像放置在距屏幕右侧 50px 的位置
- javascript - JavaScript:不知何故,我输入的 var n 乘以 10 我不知道它发生在哪里
- php - 无法显示我在 PHP 中上传的图像
- swift - 来自纹理 Swift SKphysicsbody 的碰撞问题