2012-02-28 156 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 + "@"); 
    }); 
})