我正在读取我在Windows中的记事本中创建的文件。 (基本的txt编辑器。)
创建我写的文件时(其中[newline]表示返回)
APP.EXE [换行符] background.jpg [换行符]
然后保存。我把它放到一个目录中。
My Nodekit程序读取此文件,然后执行以下操作:
var data = fs.readFileSync(filenameTemp, "utf8");
data.replace(/\r\n/g, "\n");
data.replace(/\r/g, "\n");
var strARR = data.split("\n");
strARR[0]
长度为8 ?????当“app.exe”的长度为7.当我在Chrome中查看strARR[0][7]
时,它会显示为“”,即没有任何内容的字符串。
当“background.jpg”的长度为14时,strARR[1]
的长度为15。再次,Chrome会将额外字符报告为“”。
strARR[2]
的长度为0,如预期的那样。
这个幽灵角色来自哪里?它导致我遇到的另一个错误。
答案 0 :(得分:5)
replace方法返回一个新字符串 - 它不会修改现有字符串。第二行和第三行代码不会更改数据中保存的值。您需要将返回的值分配回数据变量,如下所示:
var data = fs.readFileSync(filenameTemp, "utf8");
data = data.replace(/\r\n/g, "\n");
data = data.replace(/\r/g, "\n");
var strARR = data.split("\n");
你看到的'幽灵'角色实际上是\ r \ n字符,你认为你已经删除但没有!