Как создать массив, читая текстовый файл в JavaScript - PullRequest
0 голосов
/ 01 мая 2011

У меня есть текстовый файл с ненормативной лексикой, разделенной запятой (,). Теперь я должен создать массив, прочитав этот текстовый файл, каждое слово ненормативной лексики должно быть сохранено в массив. если кто-то знает, как это сделать, пожалуйста, ответьте мне как можно скорее. Примечание. Я должен хранить этот файл в любом месте по своему выбору. Единственное, что мне нужно сделать, это прочитать текстовый файл, просто указав полный путь к файлу. Это не обязательно решение должно быть в JavaScript, вы можете ответить с помощью JQuery или AJAX решения. спасибо.

Ответы [ 5 ]

1 голос
/ 01 мая 2011

Вот решение 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);
     });

  });

});

Проверено на CSV от http://en.wikipedia.org/wiki/Comma-separated_values

Вы можете скрыть элемент управления вводом файлов, используя что-то вроде этого http://plugins.jquery.com/project/custom-file

1 голос
/ 01 мая 2011

вы не можете выполнять операции ввода-вывода из Javascript,

вы, вероятно, можете попробовать ajax

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

или jquery load

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

0 голосов
/ 01 мая 2011

Можете ли вы манипулировать CSV-файлом вручную перед его чтением? У меня была похожая проблема, но я смог заставить человека, который ее сгенерировал, сделать несколько вещей, таких как глобальный поиск / замена ' & rarr; \' затем оборачиваем содержимое в строковую переменную JS. Затем я просто включил новый файл, как и любой другой файл JS.

Ex.

<!-- 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';

А затем я использовал ссылку Ben Nadel, размещенную samccone, для фактического анализа.

0 голосов
/ 01 мая 2011

Технически вы можете сделать это с помощью - http://www.phpletter.com/Our-Projects/AjaxFileUpload/

  1. Загрузить файл на серверный код, проанализировать его обратно с помощью массива json
    def upload_file    
       data = params['fileToUpload'].read
       render :json => data.split(',')
    end
  1. В вашем клиентском коде

< input type='file' size='25' name='fileToUpload'></p> <pre><code> <button onclick='return ajaxFileUpload();'>Ajax Read</button>

  1. В вашем методе ajaxFileUpload () для обработки возвратаdata.split (',')
0 голосов
/ 01 мая 2011

см. Этот ресурс и код, это действительно отличный пост об этой проблеме

http://www.bennadel.com/blog/1504-Ask-Ben-Parsing-CSV-Strings-With-Javascript-Exec-Regular-Expression-Command.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...