正在读取文本文件Javascript
Reading From text file Javascript
好吧,这可能很难解释
密码和用户名不一样。
我正在阅读一个文本文件
"用户名,密码"是以下结构的文本文件
John,BOL12345
Mary2,BOL77777
Anna,BOL54321
test,BOL12345
前三名不能单独工作我只需要前三名
但一旦我添加了"测试,BOL12345"
密码BOL12345确实有效
但如果没有"测试,BOL12345"密码"BOL12345"或任何其他密码都不起作用
我在javascript中做这一切,下面将是代码片段。。请提出任何问题,因为我不明白为什么会发生这种情况
下面的JavaScript
"行"=上方的文本文件
lines = x.responseText.split("'n");
for (i=0; i < lines.length; i++)
{
test1 = lines[i].split(",")
username.push(test1[0]);
password.push(test1[1]);
}
var tempUsername = document.getElementById('username').value;
var tempPassword = document.getElementById('password').value;
var arraycontainsusername = (username.indexOf(tempUsername) > -1);
var arraycontainspassword = (password.indexOf(tempPassword) > -1);
alert(password);
if (arraycontainsusername && arraycontainspassword) {
window.location.href = "listing.htm";
};
有根据的猜测:您的文件正在使用'r'n
。由于您通过'n
进行拆分,因此'r
保留在中并损坏每个字符串。尝试按'r'n
进行拆分,看看会发生什么。这就解释了为什么添加最后一行会起作用,因为末尾没有换行符,也不会有拖尾字符扰乱indexOf
搜索。
不同的操作系统对文本文件的处理方式不同。Windows使用CRLF(回车换行)跳转到下一行,而*NIX变体使用LF。旧的MacOS版本使用CR。您的代码假设该文件来自*NIX环境,其中LF(或'n
)是规范,当它来自windows环境时,其中CRLF(或'r'n
)是规范(不准确,因为您可以在windows中使用LF和*NIX中使用CRLF制作文本文件,请购买图片)。
为了正确处理所有情况,我建议在处理字符串之前对其进行规范化:
x.responseText.replace(/'r'n|'r(?!'n)/g, ''n').split(''n');
中间那个看似中文的字符串实际上是一个匹配''r''n或''r''n的正则表达式(但仅当''r''n后面没有跟''r''n时)。通过这种方式,您可以将所有CRLF和CR替换为LF,并处理来自任何环境的文本。
由于标记的顺序,您可以将正则表达式简化为/'r'n|'r/
,但我将其保留下来,因为它说明了一个简洁的概念(lookahead-(?!'n)
位表示如果且仅当不紧跟'n
)。有了这一点,/'r'n|'r/
将表现得更好,尤其是在处理大文件时。
- Word文件(Javascript?)中有哪些字符
- 获取二进制数据并将其保存为.mp3文件Javascript
- 创建包含文本内容的新 Google 云端硬盘文件 (javascript)
- 将从 URL 输出的 JSON 保存到文件 javascript
- 单个页面上的多个音频文件javascript
- 将表单数据写入json文件-javascript
- imacros提取两部分数据+连接常量保存到文件javascript
- 检索 XML 文件 (JavaScript)
- 如何将画布图像“data:image/jpeg;base64,.”转换为普通图像文件 - JavaScript
- 用固定的行名称附加文件 javascript
- 打开并读取二进制文件(JavaScript)
- 将 emacs 用于大型多文件 JavaScript 项目
- 加载外部javascript,但HTTP请求重复一个文件javascript
- 从2D数组创建图像文件-JavaScript
- 正在读取文本文件Javascript
- 通过django将STATIC_URL传递到文件javascript
- 从输入文件javascript中获取一些数据
- Django”;静态“;文件-Javascript
- 上传两次相同的图像文件-Javascript
- 从文本文件javascript中读取行/变量