Javascript: конвертировать текстовые области в массив

Как бы вы разбили значение textarea на массив, основанный на конце разделения строк? Использование jQuery круто мной...

5 ответов

Решение

Это должно работать (проверено в Firefox и Google Chrome):

var arrayOfLines = $('#textAreaID').val().split('\n');

Кроссплатформенный способ:

var area = document.getElementById("area");             
var lines = area.value.replace(/\r\n/g,"\n").split("\n");
var stringArray = document.getElementById('textarea').value.split('\n');

Мне больше всего нравится "кроссплатформенный способ" ответа ( /questions/2830502/javascript-konvertirovat-tekstovyie-oblasti-v-massiv/2830522#2830522), поскольку в прошлом я сталкивался с вводом с Mac. Тем не менее я думаю, что для большинства существующих ответов можно было бы сделать дополнительный шаг.

В частности, что, если некоторые строки пусты? Следующее отфильтрует такие строки, так что мы получим "компактный" массив, а не "разреженный" (или, по крайней мере, вместо массива с элементами, не содержащими значений)

var area = document.getElementById("area");             
var lines = area.value.replace(/\r\n/g,"\n").split("\n").filter(line => line);

Этот метод работал хорошо:

var textArea = document.getElementById("textAreaId");
var arrayFromTextArea = textArea.value.split(String.fromCharCode(10));

Вы можете попробовать эту функцию:

function textToArray(){
  var someArray = [];    
  var nameList = $("#txtArea").val();

  $.each(nameList.split(/\n/), function (i, name) {     

      // empty string check
      if(name != ""){

          someArray.push(name);

      }        
});

взято из: КОНВЕРТ ТЕКСТАРЕА СОДЕРЖИМОГО В МАРШРУТ С ИСПОЛЬЗОВАНИЕМ JQUERY

Другие вопросы по тегам