如何使用JavaScript删除textarea中的空白行?

时间:2016-04-25 20:33:28

标签: javascript

我得到textarea的内容:

var stringArray = document.getElementById('textarea').value;

我必须删除所有空行(即使是带空格的空行)。什么是有效的方法呢?

编辑:我想删除空白行,而不是空格。

e.g。

A
  B

C

D

A
  B
C
D

2 个答案:

答案 0 :(得分:1)

最后我设法让它发挥作用。这是代码,以防万一其他人需要它:

function delBlankLines() {
 var stringArray = document.getElementById('textarea').value.split('\n');
 var temp = [""];
 var x = 0;

 for (var i = 0; i < stringArray.length; i++) {
   if (stringArray[i].trim() != "") {
     temp[x] = stringArray[i];
     x++;
   }
 }

 temp = temp.join('\n');
 document.myform.textarea.value = temp;
}

因此,将textarea内容拆分为一个字符串数组,如果修剪后的当前行为空,则对该数组进行循环检查;如果不是,则将该行复制到临时字符串数组(基本上忽略空行)。最后,我用临时字符串数组更新textarea。

答案 1 :(得分:-1)

您可以使用string.prototype上的原生javascript .trim()。 首先,你可以比写出document.getElementById(blah自动定义为document.getElementById(&#39; blah&#39;))更有效率var stringArray = textarea.innerHTML; 接下来做stringArray.trim();这将摆脱任何外部空白区域。 好吧现在拆分新线stringArray = stringArray.split('\n')然后再做 正则表达式参考:http://www.javascriptkit.com/javatutors/redev2.shtml

请参阅小提琴:https://jsfiddle.net/razgoldin/afy5v66x/18/

function someFunction() {
  var cleanedString = '';
  stringArray = stringArray.value || stringArray.innerHTML;
  stringArray = stringArray.value.trim().split('/n'); 
  for(var i = 0; i < stringArray.length; i++){
    var line = stringArray[i];
    if(line.match('/^\S\n/') !== -1){
      cleanedString += line.trim();
    }
  }
  console.log(cleanedString);
  output.innerText = cleanedString;
}