【发布时间】:2017-03-31 16:02:44
【问题描述】:
我有文件,其中我的日志在多行中,每个记录的事件都有日期,我正在尝试编写逻辑 如果行以日期开头,并且 如果第二行不 将日期与第一行合并,这是最终目标,下面的代码作为第一步打印有日期与没有日期的行,但它总是打印 否则声明, 知道什么是实施错误吗?
我的问题不是关于日期对象的验证我只想检查字符串是否包含日期任何格式打印这些行。问题是我想使用日期参数组合多行 og 事件。
ctrl.js
fs.readFile(dir + '/' + logFile, 'utf8', function(err, data) {
var line = data.split('\n');
var messageDateInfo = line.split('|')[0].replace(/[\[\]']+/g, '');
var d = parseDate(messageDateInfo);
function parseDate(str) {
var m = str.match(/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/);
return (m) ? new Date(m[3], m[2] - 1, m[1]) : null;
}
if (line.includes(d)) {
console.log('print lines with date', line);
} else {
console.log('print lines without date', line);
}
});
文件数据
[2017-03-23T18:13:16Z]|verbose|bmid: n/a|infra.topicWorkers|topology changed, emitting topology event { newTopology:
[ '-0000001337',
'-0000001338',
'-0000001339',
'-0000001340',
'-0000001341',
'-0000001342' ],
oldTopology:
[ '-0000001337',
'-0000001338',
'-0000001339',
'-0000001340',
'-0000001341' ],
workerId: 6,
pid: 30488 }
[2017-03-23T18:13:16Z]|verbose|bmid: n/a|infra.topicWorkers|topology changed, emitting topology event { newTopology:
[ '-0000001337',
'-0000001338',
'-0000001339',
'-0000001340',
'-0000001341',
'-0000001342' ],
oldTopology: [],
workerId: 4,
【问题讨论】:
-
我编辑了我的问题,请你重新打开它我真的很挣扎我使用了其他问题的答案,例如
parseDate
标签: javascript node.js split fs