JavaScript:将文本区域转换为数组

37
你要如何将文本框的值根据行结束符划分为数组?使用jQuery对我来说很酷……
6个回答

66

这应该可以工作(在Firefox和Google Chrome中测试过):

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

4
应该写成 $('#textArea').val().split('\n'),jQuery对象没有 value 属性。 - Christian C. Salvadó
@CMS - 或者甚至 $('#textArea')[0].value.split('\n') :) - Russ Cam
@CMS:糟糕。谢谢您的注意。 - Daniel Vassallo

22

跨平台方式:

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

13
var stringArray = document.getElementById('textarea').value.split('\n');

4
我最喜欢“跨平台方式”的答案(来自https://dev59.com/VnE95IYBdhLWcg3wd9tK#32240738),因为我之前曾经使用 Mac 输入。不过,我认为大多数现有的答案都可以从另一个步骤中获益。
具体而言,如果有些行为空怎么办?以下代码将过滤掉这些空行,以便我们得到一个“紧凑”的数组,而不是一个“稀疏”的数组(或者至少不包含值为空的元素)。
var area = document.getElementById("area");             
var lines = area.value.replace(/\r\n/g,"\n").split("\n").filter(line => line);

请澄清一下,这是否利用了 JavaScript 中空字符串为假值的事实? - IMP1
@IMP1 精准地 - Dexygen

0
你可以尝试使用这个函数:
function textToArray(){
  var someArray = [];    
  var nameList = $("#txtArea").val();

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

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

          someArray.push(name);

      }        
});

来源于: 使用jQuery将文本区内容转换为数组


0

这个方法很有效:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接