读取文本文件的一部分,其值用“,”分隔,插入数组

时间:2018-07-23 09:58:18

标签: javascript html arrays file

我有一个需要读取的文本文件。 文本文件的示例如下:

Login,Name,Surname
Rd-001,Raj,Dolka
RS-932,Ram,Selmen

我只想读取所有登录名并将它们添加到en数组中,以便以后可以将它们添加到数据库中。

我能够读取文件,但是我只需要登录名,就不需要它的数据,名称和姓氏。

我的代码如下:

<!DOCTYPE html>
<html>
<head>
<title>reading file</title>
<script type="text/javascript">
var reader = new FileReader();
function readText(that){
    if(that.files && that.files[0]){
        var reader = new FileReader();
        reader.onload = function (e) {  
            var output=e.target.result;
            //process text to show only lines with "-":     
            output=output.split("\n").filter(/./.test, /\-/).join("\n");
            document.getElementById('main').innerHTML= output;
        };//end onload()
        reader.readAsText(that.files[0]);
    }//end if html5 filelist support
} 
</script>
</head>
<body>
<input type="file" onchange='readText(this)' />
<div id="main"></div>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

您可能想使用explode() http://php.net/manual/en/function.explode.php

或者,如果您有CSV文件,则可以使用内置的PHP函数str_getcsv http://php.net/manual/en/function.str-getcsv.php

我会file_get_contents然后用“ \ n”爆炸CSV文件, 然后foreach,并使用str_getcsv,然后将返回的数组保存到另一个数组。

如果要使用JS进行操作,则可以使用split()

答案 1 :(得分:1)

我知道其他发帖人也提到过使用split,但这是一个片段,实际上,考虑到问题中描述的文本结构,该片段只能让您解析登录信息:

output = output.split("\n").filter((line, i) => i != 0).map(line => line.split(",")[0]).join("\n");

filter调用的重点是排除第一(标题)行。 map调用的重点是每行中仅包含第一项。