提问人:nanohard 提问时间:10/13/2023 最后编辑:nanohard 更新时间:10/24/2023 访问量:76
节点 .replace() 仅有时起作用
Node .replace() only works sometimes
问:
当我尝试删除行尾时,它只在大约 75% 的时间内起作用,而在其他时间则不起作用。我尝试了多种排列来达到相同的效果;也就是说,有时,它仍然会包含 .为什么会发生这种情况,我能做些什么来让它一直工作,而不仅仅是偶尔?.replace()
\n
const transformStream = new stream.Transform({
transform: (chunk, encoding, callback) => {
const data = chunk.toString()
// remove line endings from stream, making one long line
.replace(/(\n)|(\r)|(\\")|(\\\\)|(\\n)|(\\r)/gm, "");
callback(null, data);
}
});
我尝试了以下方法:
.replace(/[\n\r]/g)
.replace(/[\n\r]|(\n)|(\r)|(\\n)|(\\r)/g)
以及其他类似的变化,但到目前为止还没有达到预期的结果。
编辑:
这是 Postgres 抱怨的一段数据(我们正在将数据流式传输到 Postgres)。实际文件是 101MB,出于隐私原因我无法上传。
{
result: 'There was a problem with the JSON content.',
message: 'invalid input syntax for type json',
detail: 'Character with value 0x0a must be escaped.',
where: 'JSON data, line 1: ...rice_level"}},"barcodes":[],"id":"i0","name":"Rum\n'
}
我在这里错过了什么?我们用 替换 和 .
再说一次,如果我第二次运行它,它通常会毫无问题地通过。如果没有,我只是继续运行它,最终它会通过。replace()
\n
\\n
答: 暂无答案
评论
replaces
replace(/\r\n/g, "\n")
replace(/\r/g, '')
replace(/\\n/g, '\n').replace(/\\r/g, '')
const data = chunk.toString().replace(..).replace(..).replace(..)
ab
a
b
ab
ab