<script type="text/javascript">
//<![CDATA[
var str =
[
'a\n'
,'\n'
,'b\n'
,'\n'
,'c\n'
,'\n'
,'\n'
,'\n'
,'d\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'e\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'f\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'g\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'h\n'
].join("");
document.write("str: \n", str, "<hr/>");
document.write("fClearLine(str, 0): \n", fClearLine(str, 0), "<hr/>");
document.write("fClearLine(str, 1): \n", fClearLine(str, 1), "<hr/>");
document.write("fClearLine(str, 2): \n", fClearLine(str, 2), "<hr/>");
document.write("fClearLine(str, 3): \n", fClearLine(str, 3), "<hr/>");
document.write("fClearLine(str, 4): \n", fClearLine(str, 4), "<hr/>");
document.write("fClearLine(str, 5): \n", fClearLine(str, 5), "<hr/>");
document.write("fClearLine(str, 6): \n", fClearLine(str, 6), "<hr/>");
function fClearLine(Source, iProtect, bDebug)
{// shawl.qiu code : return string || void return
var bStr = false;
if(!iProtect) iProtect = 0;
if(Source.constructor==String) Source = [Source], bStr = true;
var sPtr = "[\\s]*?\\n";
var sFianlPtr = fRepeatString(sPtr, iProtect);
var TempAr = ["(\\n", sFianlPtr, ")", "[\\s]*\\n"];
var TempRe = new RegExp(TempAr.join(""), "g");
Source[0] = Source[0].replace(TempRe, "$1");
if(bDebug)
{
document.write("sFianlPtr: ", sFianlPtr, "<br/>");
}
if(bStr) return Source[0];
function fRepeatString(sIpt, iLen)
{// shawl.qiu script
if(!sIpt)return "";
if(!iLen&&iLen!==0) iLen = 2;
iLen -= 0;
return new Array(iLen+1).join(sIpt);
} // end function fRepeatStr
} // end function fClearLine(Source, iProtect, bDebug)
//]]>
</script>
//<![CDATA[
var str =
[
'a\n'
,'\n'
,'b\n'
,'\n'
,'c\n'
,'\n'
,'\n'
,'\n'
,'d\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'e\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'f\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'g\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'\n'
,'h\n'
].join("");
document.write("str: \n", str, "<hr/>");
document.write("fClearLine(str, 0): \n", fClearLine(str, 0), "<hr/>");
document.write("fClearLine(str, 1): \n", fClearLine(str, 1), "<hr/>");
document.write("fClearLine(str, 2): \n", fClearLine(str, 2), "<hr/>");
document.write("fClearLine(str, 3): \n", fClearLine(str, 3), "<hr/>");
document.write("fClearLine(str, 4): \n", fClearLine(str, 4), "<hr/>");
document.write("fClearLine(str, 5): \n", fClearLine(str, 5), "<hr/>");
document.write("fClearLine(str, 6): \n", fClearLine(str, 6), "<hr/>");
function fClearLine(Source, iProtect, bDebug)
{// shawl.qiu code : return string || void return
var bStr = false;
if(!iProtect) iProtect = 0;
if(Source.constructor==String) Source = [Source], bStr = true;
var sPtr = "[\\s]*?\\n";
var sFianlPtr = fRepeatString(sPtr, iProtect);
var TempAr = ["(\\n", sFianlPtr, ")", "[\\s]*\\n"];
var TempRe = new RegExp(TempAr.join(""), "g");
Source[0] = Source[0].replace(TempRe, "$1");
if(bDebug)
{
document.write("sFianlPtr: ", sFianlPtr, "<br/>");
}
if(bStr) return Source[0];
function fRepeatString(sIpt, iLen)
{// shawl.qiu script
if(!sIpt)return "";
if(!iLen&&iLen!==0) iLen = 2;
iLen -= 0;
return new Array(iLen+1).join(sIpt);
} // end function fRepeatStr
} // end function fClearLine(Source, iProtect, bDebug)
//]]>
</script>
<textarea cols="30" rows="20" id="tr_from">
abbbbbbbbbbbbbbaaa
aaa
aaa
aaa
</textarea><div><button onclick="Convert();">Convert</button></div>
<textarea cols="30" rows="20" id="tr_to"></textarea>
<script language="javascript">
var switchKey = true;
var dst_str="";
var blankCount = 0;
var shortLineCount = 0;
var shortLineArr = new Array();
function Convert()
{
var f_str = document.getElementById("tr_from").value;
f_str.replace(/^([\d\D]*?)$/gm,f1);
document.getElementById("tr_to").value = dst_str;
switchKey = true;
dst_str="";
blankCount = 0;
shortLineCount = 0;
shortLineArr = new Array();
}
function f1(a,b)
{
if(!switchKey)
{
switchKey = !switchKey;
return;
}
switchKey = !switchKey;
//alert(b.length);
if (/^\s*$/.test(b))
{
if(shortLineArr.length > 2)
{
dst_str = dst_str + shortLineArr.join(" ") + "\n";
shortLineArr = null;
shortLineArr = new Array();
}
else if(shortLineArr.length > 0)
{
dst_str = dst_str + shortLineArr.join("\n") + "\n";
shortLineArr = null;
shortLineArr = new Array();
}
blankCount++;
}
else if(b.length < 5 )
{
if(blankCount < 3 && blankCount > 0)
{
dst_str = dst_str+"\n";
blankCount = 0;
}
else if(blankCount >= 3)
{
dst_str = dst_str+"\n";
blankCount = 0;
}
shortLineArr.push(b);
shortLineCount++;
}
else
{
if(blankCount < 3 && blankCount > 0)
{
dst_str = dst_str+"\n";
blankCount = 0;
}
else if(blankCount >= 3)
{
dst_str = dst_str+"\n";
blankCount = 0;
}
shortLineCount=0;
blankCount=0;
if(shortLineArr.length > 2)
{
dst_str = dst_str + shortLineArr.join(" ") + "\n";
shortLineArr = null;
shortLineArr = new Array();
}
else if(shortLineArr.length > 0)
{
dst_str = dst_str + shortLineArr.join("\n") + "\n";
shortLineArr = null;
shortLineArr = new Array();
}
} if(!(/^\s*$/.test(b) || b.length < 5))
{
dst_str = dst_str + b + "\n";
}
}
</script>
<textarea id="textarea1" style="width:400;height:400">
abbbbbbbbbbbbbb
aaa
aaa
aaa
aaa
</textarea>
<input type="button" onclick=check()>
<script language=javascript>
function check(){
re=/(\r\n(?=(\r\n+)))+/g
var obj=document.getElementById("textarea1")
var str=obj.value
str=str.replace(re,"\r\n");
re=/\r\n((([^\r\n]{1,5})(\r\n|$)){3,})/g
alert(str.match(re))
obj.value=str.replace(re,function(a,b,c){return "\r\n"+b.split("\r\n").join(" ")+"\r\n"})
}</script>