javascript split()函数 - 每个字符串末尾的ghost字符

Rew*_*ind 0 javascript split

我正在读取我在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.

这个幽灵角色来自哪里?它导致我得到的另一个错误.

Chr*_*ris 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");
Run Code Online (Sandbox Code Playgroud)

你看到的'幽灵'角色实际上是\ r \n字符,你认为你删除但没有!

  • OMG怎么可能都错过了.我恳求它已经过了睡觉时间并且我有一些端口.做得好. (2认同)