我正在阅读我在 Windows 中的记事本中创建的文件。 (基本的 txt 编辑器。)
创建我编写的文件时(其中[换行]表示回车)
app.exe[newline]background.jpg[newline]
然后保存。我把它放入一个目录中。
我的 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。
这个幽灵 Angular 色是从哪里来的?它是我遇到的另一个错误的原因。
最佳答案
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 字符,您认为已将其删除,但实际上并未删除!
关于javascript split() 函数 - 每个字符串末尾的幽灵字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21393152/