Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法用JavaScript中的FileReader获取文件的特定部分?_Javascript_Html_Filereader - Fatal编程技术网

有没有办法用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()}`

我怀疑在阅读时是否有办法提取冒号后的部分,但在阅读后处理文件相对容易。