Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将textareas字符串值转换为由新行分隔的JavaScript数组_Javascript_Jquery_Arrays_String_Newline - Fatal编程技术网

将textareas字符串值转换为由新行分隔的JavaScript数组

将textareas字符串值转换为由新行分隔的JavaScript数组,javascript,jquery,arrays,string,newline,Javascript,Jquery,Arrays,String,Newline,我有一个textarea,用户可以在其中写入多达1000个字符。我需要获取jQuery('#textarea').val(),并创建一个数组,其中每个项都是textarea值的一行。这意味着: 这是文本区域内的一条漂亮的线。 这是另一行。 (假设此行为空-应忽略它)。 有人在上面留下了两行以上的新词 应转换为JavaScript数组: var texts = []; text[0] = 'This is a nice line inside the textarea.'; text[1] = '

我有一个
textarea
,用户可以在其中写入多达1000个字符。我需要获取
jQuery('#textarea').val()
,并创建一个数组,其中每个项都是
textarea
值的一行。这意味着:

这是文本区域内的一条漂亮的线。
这是另一行。
(假设此行为空-应忽略它)。
有人在上面留下了两行以上的新词

应转换为JavaScript数组:

var texts = [];
text[0] = 'This is a nice line inside the textarea.';
text[1] = 'This is another line.';
text[2] = 'Someone left more than 2 new lines above.';
这样,他们就可以很容易地查询字符串(这是提供程序要求的qs格式):


我尝试了和
string.split(“\n”)
两种方法,但它们没有处理额外的新行(也称为换行符)。有什么想法吗?

String.prototype.split()
很好

var lines = $('#mytextarea').val().split(/\n/);
var texts = [];
for (var i=0; i < lines.length; i++) {
  // only push this line if it contains a non whitespace character.
  if (/\S/.test(lines[i])) {
    texts.push($.trim(lines[i]));
  }
}
请在此处查看:

var split=$('#textarea').val().split('\n');
var行=[];
对于(变量i=0;i
使用
拆分
功能:

var arrayOfLines = $("#input").val().split("\n");
试试这个

var lines = [];
$.each($('textarea').val().split(/\n/), function(i, line){
   if(line && line.length){
      lines.push(line);
   }
});

就在我的头顶上,也许试着将它拆分,然后将拆分后的比特送入一个数组?@AndrewPeacock我刚刚用一些信息更新了这篇文章。我用phpjs explode()尝试了这个方法,但是它没有考虑额外的行(如果有)问题?我的意思是,你在一个数组上迭代,把每个元素推到一个新数组,而不是使用原始数组。它看起来不是很有用。我认为现在它有意义了,不是吗?它有:)尽管
检查是不必要的;您永远不会得到
null
undefined
。工作并处理额外的空间,谢谢!只有一件事,“int”应该删除;)只有一件事。。。允许一个额外输入,两个不允许(2个或多个应转换为一个)。有什么想法吗?这个片段不是这样吗?如果一行只包含空格,它将被忽略。是的,但您最多可以有一个空格。这对于段落分隔很方便。应该是
。拆分(/\n/)
var split = $('#textarea').val().split('\n');
var lines = [];
for (var i = 0; i < split.length; i++)
    if (split[i]) lines.push(split[i]);
return lines;
var arrayOfLines = $("#input").val().split("\n");
var lines = [];
$.each($('textarea').val().split(/\n/), function(i, line){
   if(line && line.length){
      lines.push(line);
   }
});