我得到textarea的内容:
var stringArray = document.getElementById('textarea').value;
我必须删除所有空行(即使是带空格的空行)。什么是有效的方法呢?
编辑:我想删除空白行,而不是空格。
e.g。
A
B
C
D
到
A
B
C
D
答案 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;
}