也许这只是极度缺乏睡眠,但我无法弄清楚为什么会这样 . 我有一个4个字母的文本文件,每行一个,如下所示:
text
lolz
test
word
当我尝试逐行将此文件加载到一个数组中时,我得到的字符串长度为5个字符!
var request = new XMLHttpRequest();
request.open("GET", "test.txt");
request.onloadend = function()
{
var wordList = request.response;
wordList = wordList.split('\n');
console.log(wordList[2].length);
}
request.send();
我正在使用记事本进行编辑,我发现每行末尾没有空格 . sting.split()函数应该删除字符串被拆分的字符,因此额外的字符不应该是'\ n' . 使用Chrome中的console.log,我无法确定实际上是多余的字符 . 似乎没有!
2 回答
如果您以前从未遇到过这种情况,这可能是一个奇怪的问题 . 有时不仅包含一个'\ n'字符用于新行(您似乎已经熟悉它),而且还包含'\ n'字符用于“回车” . 这意味着除了跳过一个空格,开始一个新行之外,打字机需要一直向左移动 . 我不确定你能预测什么时候你会得到回车......它可能是特定于平台的吗?或者也许文本编辑器具体?也许有真正知识的人可以扩展这个答案 .
无论如何,现在,尝试为每个条目添加一个trim(),这应该摆脱你看不到的隐藏'\ r',如下所示:
分割日期字符串时遇到了同样的问题;在每个数组项的开头和结尾添加了一个额外的'non-visible'字符;
string.trim()
没有用 .我花了2天时间来完成以下工作:
从以下位置创建日期时间数组:
从datetime数组创建日期和时间字符串:
拆分日期和时间字符串:
然后将每个日期和时间元素转换为数字:
getNumberFromString函数:
最后创建了一个用于某些加密的查找数组:
如果有人能告诉我一个更短的路,我将不胜感激 .