如何通过在javascript中读取文本文件来创建数组

时间:2011-05-01 04:57:42

标签: javascript jquery ajax

我有一个用逗号(,)分隔的亵渎词的文本文件。现在我必须通过读取这个文本文件来创建一个数组,每个亵渎词应该存储在数组中。如果有人知道该怎么做,请尽快回复我。 注意:我必须将此文件存储在我选择的任何位置。我唯一要做的就是通过提供完整的文件路径来读取文本文件。没有必要解决方案应该在javascript中,您可以使用jquery或ajax解决方案进行回复。 谢谢。

5 个答案:

答案 0 :(得分:1)

你无法从Javascript进行IO操作,

你可以试试ajax

http://api.jquery.com/jQuery.ajax/

或jquery加载

http://api.jquery.com/load/

答案 1 :(得分:1)

这是一个可以使用的jQuery + AJAX解决方案

//HTML
<input id="file" type="file" />
<input type="button" id="load" value="Load CSV" />

//JavaScript/jQuery
$(function () {

  //Stop caching if csv is likely to change often (change $.get to $.ajax)
  $.ajaxSetup({
     cache: false
  });

  $('#load').click(function () {

     $.get($('#file').val(), function (content) {
        var output = content.split(new RegExp(",|\r"))
                            .map(function (element) {
           //Do what ever tidy up here
           return $.trim(element).toLowerCase();
        });
        console.log(output);
     });

  });

});

http://en.wikipedia.org/wiki/Comma-separated_values

的CSV上测试

您可以使用类似http://plugins.jquery.com/project/custom-file

之类的内容隐藏文件输入控件

答案 2 :(得分:0)

答案 3 :(得分:0)

从技术上讲,您可以通过 - http://www.phpletter.com/Our-Projects/AjaxFileUpload/

来完成
  1. 将文件上传到服务器端代码,用json数组解析
  2.     def upload_file    
           data = params['fileToUpload'].read
           render :json => data.split(',')
        end
    
    1. 在您的客户代码中
    2. < input type='file' size='25' name='fileToUpload'>

       <button onclick='return ajaxFileUpload();'>Ajax Read</button>
      

      <button onclick='return ajaxFileUpload();'>Ajax Read</button>

      1. 在你的ajaxFileUpload()方法中处理返回data.split(',')

答案 4 :(得分:0)

您是否可以在阅读之前手动操作CSV文件?我有一个类似的问题,但是能够让生成它的人做一些事情,例如对'\'进行全局搜索/替换,然后将内容包装在JS中字符串变量。然后我就像其他任何JS文件一样包含新文件。

实施例

<!-- Modified CSV file with single JS variable -->
<script type="text/javascript" src="csvFile.js"></script>
<!-- Ben Nadel CSV Parser and any other custom code -->
<script type="text/javascript" src="parseCsv.js"></script>

原始CSV:

word,"multiple words",apostrophe's

修改后的JS CSV:

var csvData = 'word,"multiple words",apostrophe\'s';

然后我使用samccone发布的Ben Nadel链接进行实际解析。