从TEXTAREA获取值

时间:2012-02-28 02:59:16

标签: javascript jquery html

<textarea name="test" id="text">
    text
 area
    one one
  two

    break above
last
</textarea>  

<span id="getvalues">get values</span>  

$("#getvalues").click(function(){

})

如何从每行到javascript数组获取此textarea的所有值? 这应该:

  • 忽略空格 - 修剪
  • 忽略白色休息

接下来我想制作:

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

这应该告诉我:

@text@
@area@
@one one@
@two@
@break above@
@last@

现场例子:http://jsfiddle.net/BW8Z2/1/

3 个答案:

答案 0 :(得分: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 + "@");
    });
})

答案 1 :(得分:2)

这将帮助您入门:

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

您可以在StackOverflow上的其他问题中找到如何修剪字符串以及如何从JavaScript中排除数组中的空项目。

答案 2 :(得分: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 + '@');
    });
});