如何使用Java脚本检测文本区域中的换行符? 如果文本区域中存在两个连续的空白行,则删除一个空白行,如果只有一行存在,则删除它。
任何人都能帮助我吗?目前我只能删除单行。
Line 1
Line 2
Line3
应转换为:
Line 1
Line 2
Line3
答案 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');
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;
编辑:描述不清楚,只删除一个换行符在现实世界中听起来没用,所以我会保留原始答案。关于,&#34;我需要单独留下一个空白行,如果有3或4个空行&#34; - 你的意思是以下那个...
value.replace(/(\n*)\n/g, '$1');
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;