我正在读取我在Windows中的记事本中创建的文件.(基本的txt编辑器.)
在创建我写的文件时(其中[newline]表示返回)
APP.EXE [换行符] background.jpg [换行符]
然后保存了它.我把它放到一个目录中.
我的Nodekit程序读取此文件,然后执行以下操作:
var data = fs.readFileSync(filenameTemp, "utf8");
data.replace(/\r\n/g, "\n");
data.replace(/\r/g, "\n");
var strARR = data.split("\n");
Run Code Online (Sandbox Code Playgroud)
strARR[0]是长度8 ????? 当"app.exe"长度为7.当我strARR[0][7]在Chrome中查看时它表示它是"",即没有任何内容的字符串.strARR[1]当"background.jpg"长度为14时,长度为15.再次Chrome报告额外的字符作为"".
strARR[2]是预期的长度为0.
这个幽灵角色来自哪里?它导致我得到的另一个错误.
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");
Run Code Online (Sandbox Code Playgroud)
你看到的'幽灵'角色实际上是\ r \n字符,你认为你删除但没有!