在Javascript中读取某一行

时间:2016-11-08 16:28:58

标签: javascript html css text

我们说我有一个名为" Fruits"的本地文本文件。在文本文件中是这样的:

orange: true
banana: false
apple: true
mango: true

如果我想在变量中保存Orange(真实),我该怎么做? 就像我希望它根据文本文件var orange = true一样。

2 个答案:

答案 0 :(得分:2)

除了处理文件输入/输出之外,您可以在阅读后解析该文件:

var contents = "orange: true \
banana: false \
apple: true \
mango: true";

var lines = contents.match(/[a-z]+: (true|false)/g);
var data = [];

for (i=0;i<lines.length;i++) {
  var tokens = lines[i].split(": ");
  var key = tokens[0];
  var value = tokens[1];
  data[key] = (value == "true") ? true : false;
}

console.log(data); // print results to console

首先,您创建一个匹配每一行的正则表达式模式,因此当您使用该模式调用contents.match时,您会得到一个数组,其中数组的每个元素都是文件的每一行。

然后,循环遍历数组并将每一行拆分为&#34;:&#34;,所以现在你有两个元素:键和值(例如key =&#34; orange&#34; ,value =&#34; true&#34;)。

然而,字符串&#34; true&#34;与布尔值true不同,所以我们使用(value == "true") ? true : false;将字符串值转换为布尔值,然后将它们转储到关联数组中(在javascript中与对象几乎相同)。

完成所有操作后,您可以使用data["orange"]获取值true

答案 1 :(得分:0)

如果您可以修改源文件,请使用Json轻松访问数据。

var fruits = {
    'orange' : true,
    'banana' : false,
    'apple' : true,
    'mango' : true };

var orange = fruits.orange;

您可以在外部json文件中分割水果数据,并在脚本中将其需要。

fruits.js

var fruits =  {
        'orange' : true,
        'banana' : false,
        'apple' : true,
        'mango' : true };

的script.js

define(['./fruits.js'], function(fruits){
    var orange = fruits.orange;
    var banana = fruits.banana;
});

http://requirejs.org/