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

时间:2014-01-27 22:35:58

标签: javascript split

我正在读取我在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,如预期的那样。

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

1 个答案:

答案 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字符,你认为你已经删除但没有!