有没有办法用JavaScript中的FileReader获取文件的特定部分?
我有一个文本文件,可以从这样的表单生成值有没有办法用JavaScript中的FileReader获取文件的特定部分?,javascript,html,filereader,Javascript,Html,Filereader,我有一个文本文件,可以从这样的表单生成值 First Name: John Last Name: Doe 我还想上传一个文件,我用文件输入和文件读取器读取,我可以得到文本文件的所有内容,但我只想得到“:”as,John和Doe之后的部分,这样我就可以在span as中编写它 Username: John Doe 有没有办法只读写“:”之后的部分 这是我尝试过的,但它写入了所有的值,包括名字和姓氏 var reader = new FileReader(); reader.onload = f
First Name: John
Last Name: Doe
我还想上传一个文件,我用文件输入和文件读取器读取,我可以得到文本文件的所有内容,但我只想得到“:”as,John和Doe之后的部分,这样我就可以在span as中编写它
Username: John Doe
有没有办法只读写“:”之后的部分
这是我尝试过的,但它写入了所有的值,包括名字和姓氏
var reader = new FileReader();
reader.onload = function (event) {
var contents = event.target.result;
document.getElementById("username").innerHTML = contents;
};
reader.readAsText(file);
您必须读取整个文件,因为在读取之前,您无法知道其内容或对其运行任何操作。 但是,要获取
:
之后的值,可以处理获取的字符串
下面的代码假定读取的字符串将以\n
var reader = new FileReader();
reader.onload = function (event) {
var contents = event.target.result;
var lines = contents.split('\n');
var username = "";
lines.forEach(line => {
var [key, value] = line.split(':'); // splits the line into an array breaking on the colon
if(key === 'First Name' || key === 'Last Name') { // checks for the keys so that any other key:value in subsequent lines will not be added to the username
username = username + " " + value.trim() // to remove trailing whitespaces, if any, from the value
}
});
document.getElementById("username").innerHTML = username;
};
reader.readAsText(file);
看看这个(假设一个文件中只有一个集合)
const file=`名字:John
姓氏:Doe`
常量[match,fName,lName]=file.match(/:(\w+)\s.+:(\w+)\s?/)
document.getElementById(“用户名”).innerHTML=`${fName.trim()}${lName.trim()}`代码>
我怀疑在阅读时是否有办法提取冒号后的部分,但在阅读后处理文件相对容易。