2012-02-28 115 views
1

我怎样才能从这个textarea从每行到JavaScript数组的所有值? 这应该:从TEXTAREA获取值

  • 忽略空格 - 修剪
  • 忽略白破

接下来我想补充:

$.each(textareavalues, function(index, value) { 
    console.log('@' + value + '@'); 
}); 

这应该告诉我:

@[email protected] 
@[email protected] 
@one [email protected] 
@[email protected] 
@break [email protected] 
@[email protected] 

活生生的例子:http://jsfiddle.net/BW8Z2/1/

+0

你的问题读起来就像一个家庭作业。 – 2012-02-28 03:03:49

+0

不,我有太多的年龄作业:P – 2012-02-28 03:05:20

+0

我的观点是,这是一项任务。这就像你指导社区为你写代码一样。这不是使用堆栈溢出的正确方法。 – 2012-02-28 03:07:27

回答

2
$("#getvalues").click(function(){ 
    var $textareavalues = $("#text").val(); 
    var x = $textareavalues.split('\n'); 
    $.each(x, function(index, value) { 
     var text = $.trim(value); 
     if(text !== "") 
      console.log('@' + text + '@'); 
    }); 
}); 
+2

不要说'x [index]',比如'value'(这就是'$ .each()'的第二个参数)。 – nnnnnn 2012-02-28 03:20:47

+0

是否有任何潜在的问题没有使用提供的参数,而是直接访问对象? – shaunsantacruz 2012-02-28 03:37:21

+0

我不认为有任何问题(理论上它不会表现的很好,但我怀疑你可以说)。但是,如果你不打算使用这些参数,为什么还要使用'$ .each()'而不是传统的'for'语句呢? – nnnnnn 2012-02-28 04:10:50

2

这将让你开始:

var textareavalues = $('textarea').val().split('\n'); 

你可以找到如何修剪字符串和如何排除来自StackOverflow上的其他问题在JavaScript中的数组空项。

4

当你说“忽略空白 - 修剪”时,你的意思是“忽略行上的前后空白,但保留内部空白”?而“忽略白色突破”的意思是“忽略只有空白的行”?

事情是这样的:

$("#getvalues").click(function(){ 
    var lines = $("#text").val() 
          .replace(/\n\s*\n/g,"\n") 
          .replace(/^\s+|\s+$/gm,"") 
          .split(/\n/); 

    $.each(lines, function(i, val) { 
     console.log("@" + val + "@"); 
    }); 
})