不带图片的文章排版程序.很容易看明白,就不多说了.
LayOut函数是我写的.LTrim,RTrim,Trim是在网上找的基础上稍微改动了一点.
<
script language
=
"
Javascript
"
>
/*
==================================================================
LayOut(TextboxID):对Textbox里面的内容进行自动排版:段与段之间自动空
行;段前缩进2个大空格;去除段前段后多余的空格.
==================================================================
*/
function LayOut(TextboxID)
{
var newLineChar = " \r\n " ;
var segHead = " " ;
var text = document.getElementById(TextboxID).innerText;
var textContainer = new Array();
var ContainerArrayIndex = 0 ;
var startIndex = 0 ;
var endIndex = 0 ;
var textLength = text.length;
var returnString = "" ;
var isRubbish = true ;
var rubbish = new String( " \t \r\n " );
for (var count = 0 ; count < textLength; count ++ )
{
if (rubbish.indexOf(text.charAt(count)) ==- 1 ) isRubbish = false ;
if (count == textLength - 1 && isRubbish == false )
{
textContainer[ContainerArrayIndex] = Trim(text.substring(startIndex,textLength));
ContainerArrayIndex ++ ;
}
else
{
if (text.substring(count,count + 2 ) == newLineChar)
{
endIndex = count + 2 ;
if (endIndex - startIndex > 2 && isRubbish == false )
{
textContainer[ContainerArrayIndex] = Trim(text.substring(startIndex,endIndex - 2 )) + text.substring(endIndex - 2 ,endIndex);
ContainerArrayIndex ++ ;
}
startIndex = endIndex;
count ++ ;
isRubbish = true ;
}
}
}
for (var count = 0 ; count < ContainerArrayIndex; count ++ )
{
returnString += segHead + textContainer[count] + newLineChar;
}
document.getElementById(TextboxID).innerText = returnString;
}
/*
==================================================================
LTrim(string):去除左边的空格
==================================================================
*/
function LTrim(str)
{
var whitespace = new String( " \t " );
var s = new String(str);
if (whitespace.indexOf(s.charAt( 0 )) != - 1 )
{
var j = 0 , i = s.length;
while (j < i && whitespace.indexOf(s.charAt(j)) != - 1 )
{
j ++ ;
}
s = s.substring(j, i);
}
return s;
}
/*
==================================================================
RTrim(string):去除右边的空格
==================================================================
*/
function RTrim(str)
{
var whitespace = new String( " \t " );
var s = new String(str);
if (whitespace.indexOf(s.charAt(s.length - 1 )) != - 1 )
{
var i = s.length - 1 ;
while (i >= 0 && whitespace.indexOf(s.charAt(i)) != - 1 )
{
i -- ;
}
s = s.substring( 0 , i + 1 );
}
return s;
}
/*
==================================================================
Trim(string):去除前后空格
==================================================================
*/
function Trim(str)
{
return RTrim(LTrim(str));
}
/*
==================================================================
LayOut(TextboxID):对Textbox里面的内容进行自动排版:段与段之间自动空
行;段前缩进2个大空格;去除段前段后多余的空格.
==================================================================
*/
function LayOut(TextboxID)
{
var newLineChar = " \r\n " ;
var segHead = " " ;
var text = document.getElementById(TextboxID).innerText;
var textContainer = new Array();
var ContainerArrayIndex = 0 ;
var startIndex = 0 ;
var endIndex = 0 ;
var textLength = text.length;
var returnString = "" ;
var isRubbish = true ;
var rubbish = new String( " \t \r\n " );
for (var count = 0 ; count < textLength; count ++ )
{
if (rubbish.indexOf(text.charAt(count)) ==- 1 ) isRubbish = false ;
if (count == textLength - 1 && isRubbish == false )
{
textContainer[ContainerArrayIndex] = Trim(text.substring(startIndex,textLength));
ContainerArrayIndex ++ ;
}
else
{
if (text.substring(count,count + 2 ) == newLineChar)
{
endIndex = count + 2 ;
if (endIndex - startIndex > 2 && isRubbish == false )
{
textContainer[ContainerArrayIndex] = Trim(text.substring(startIndex,endIndex - 2 )) + text.substring(endIndex - 2 ,endIndex);
ContainerArrayIndex ++ ;
}
startIndex = endIndex;
count ++ ;
isRubbish = true ;
}
}
}
for (var count = 0 ; count < ContainerArrayIndex; count ++ )
{
returnString += segHead + textContainer[count] + newLineChar;
}
document.getElementById(TextboxID).innerText = returnString;
}
/*
==================================================================
LTrim(string):去除左边的空格
==================================================================
*/
function LTrim(str)
{
var whitespace = new String( " \t " );
var s = new String(str);
if (whitespace.indexOf(s.charAt( 0 )) != - 1 )
{
var j = 0 , i = s.length;
while (j < i && whitespace.indexOf(s.charAt(j)) != - 1 )
{
j ++ ;
}
s = s.substring(j, i);
}
return s;
}
/*
==================================================================
RTrim(string):去除右边的空格
==================================================================
*/
function RTrim(str)
{
var whitespace = new String( " \t " );
var s = new String(str);
if (whitespace.indexOf(s.charAt(s.length - 1 )) != - 1 )
{
var i = s.length - 1 ;
while (i >= 0 && whitespace.indexOf(s.charAt(i)) != - 1 )
{
i -- ;
}
s = s.substring( 0 , i + 1 );
}
return s;
}
/*
==================================================================
Trim(string):去除前后空格
==================================================================
*/
function Trim(str)
{
return RTrim(LTrim(str));
}
本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/archive/2005/08/12/213722.html如需转载请自行联系原作者
xiaotie 集异璧实验室(GEBLAB)