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

标签 javascript split

我正在阅读我在 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/

相关文章:

javascript - 用于从 javascript 中的数组获取所有唯一对、三重音等的通用函数

javascript - 如何在 paper.js 中为平坦曲线添加句柄

c - 从 C 中的字符串中获取子字符串

android - 无法访问 'split' : it is private in file

javascript - 元素如何仅在滚动时固定到页面顶部?

javascript - 在javascript中链接异步调用的正确方法是什么?

javascript - 复选框选择时的表单重定向

java - 如何拆分文件中的字符串并读取它们?

java - 尝试使用 String.split ("\\?"时出现意外行为)

python - 通过列(字符串)中的唯一元素分解 pandas 数据框并创建列联表?