匹配文件的内容

时间:2015-10-13 14:03:01

标签: javascript html5

我的javascript函数有问题。 这个想法是用javascript读取文件的内容。一切正常,我可以看到文件的内容,刚才我想组织内容。

我对组织的意思是:

我的文件有很多字符串,例如:tel#01234567#tel tel#01456789#tel dept#level1#dept dept#level4 #dept .....

一切都是字符串,最后是我所看到的......

我的目标是,当我阅读文件时,最后它必须显示如下内容:

电话:01234567       01456789

部门:Level1       级别2

有办法有类似的东西吗?

function loaded(evt)
  {
    // Obtain the read file data    
    var fileString = evt.target.result;
    document.getElementById('output').innerHTML = fileString;
  }

2 个答案:

答案 0 :(得分:1)

因此,基本上您的文件具有属性名称+#?

所包含的相应属性的属性和数据

最简单的方法是将文件放在数据的通用格式中,e.q。 JSON。然后你可以使用JSON.parse();

获得的对象中的属性

但是,如果您无法更改文件结构,则必须对将字符串拆分为所需部分的程序进行编程,并使用要处理的属性创建对象。

对于您提供的字符串,您可以执行一个string.split(“”)来获取每个属性,从而生成如下数组:

Array [ "tel#01234567#tel", "tel#01456789#tel", "dept#level1#dept", "dept#level4#dept" ]

之后你可以再次遍历数组和string.split(“#”)为每个元素提供这个:

array[0].split("#");
Array [ "tel", "01234567", "tel" ]

然后,您可以使用数组的第一个索引作为属性名称,将第二个索引用作其数据。您可以将其放入对象中,然后直接从属性引用数据:

var string = "tel#01234567#tel tel#01456789#tel dept#level1#dept dept#level4#dept";
var array = string.split(" ");
var dataObject = {};

for(var i in array){
    var element = array[i].split("#");
    if(dataObject.hasOwnProperty(element[0])){
        dataObject[element[0]].push(element[1]);
    }else{
        dataObject[element[0]] = [element[1]];
    }
}

最后,您有一个对象,该对象具有所有属性作为其属性,并且相应的数据存储在每个属性的数组中。有了这个,你应该能够正常工作吗? :)

答案 1 :(得分:-1)

当您阅读该文件时,您可以使用JS split来根据分隔符分隔内容。

请在此处查看:http://www.w3schools.com/jsref/jsref_split.asp

相关问题