删除文本区域中的换行符

时间:2017-06-16 10:13:52

标签: javascript

如何使用Java脚本检测文本区域中的换行符? 如果文本区域中存在两个连续的空白行,则删除一个空白行,如果只有一行存在,则删除它。

任何人都能帮助我吗?目前我只能删除单行。

Line 1


Line 2

Line3 

应转换为:

Line 1

Line 2
Line3 

2 个答案:

答案 0 :(得分:0)

使用正则表达式匹配两个以上的新行

$(document).ready(function () {
  $('textarea').change(function () {
    $(this).val($(this).val().replace(/\n{3,}/g, "\r\n"));
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea></textarea>

我的代码在jQuery中,但您只需要这一部分:value.replace(/\n{3,}/g, "\r\n")

答案 1 :(得分:0)

您可以使用正则表达式捕获和替换字符串中的模式。 e.g。

value.replace(/(\n\n?)\n+/g, '$1');

&#13;
&#13;
var input = document.getElementById('input'),
    output = document.getElementById('output');

output.value = input.value.replace(/(\n\n?)\n+/g, '$1');
&#13;
textarea { height: 180px; float: left; }
&#13;
<textarea id="input">
one return

two returns


three returns



four returns
</textarea>

<textarea id="output"></textarea>
&#13;
&#13;
&#13;

» Regex 101

编辑:描述不清楚,只删除一个换行符在现实世界中听起来没用,所以我会保留原始答案。关于,&#34;我需要单独留下一个空白行,如果有3或4个空行&#34; - 你的意思是以下那个...

value.replace(/(\n*)\n/g, '$1');

&#13;
&#13;
var input = document.getElementById('input'),
    output = document.getElementById('output');

output.value = input.value.replace(/(\n*)\n/g, '$1');
&#13;
textarea { height: 180px; float: left; }
&#13;
<textarea id="input">
one return

two returns


three returns



four returns
</textarea>

<textarea id="output"></textarea>
&#13;
&#13;
&#13;