文章自动排版javascript程序

简介:

不带图片的文章排版程序.很容易看明白,就不多说了.

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));
}

本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/archive/2005/08/12/213722.html如需转载请自行联系原作者

xiaotie 集异璧实验室(GEBLAB)
相关文章
|
3月前
|
JavaScript 前端开发 数据库连接
js的异常程序处理机制
js的异常程序处理机制
18 0
|
3月前
|
存储 JavaScript API
Nuxt.js:用 Vue.js 打造服务端渲染应用程序(三)
Nuxt.js:用 Vue.js 打造服务端渲染应用程序
|
3月前
|
JavaScript 中间件 网络架构
Nuxt.js:用 Vue.js 打造服务端渲染应用程序(一)
Nuxt.js:用 Vue.js 打造服务端渲染应用程序
|
3月前
|
JavaScript 前端开发
如何用JS实现基础的抽奖程序
如何用JS实现基础的抽奖程序
19 0
|
4月前
|
JavaScript 前端开发 Serverless
函数计算只支持Node.js,我用C++写的程序怎么运行?
函数计算只支持Node.js,我用C++写的程序怎么运行?
91 1
|
7月前
|
JavaScript 前端开发 开发者
Vue.js:构建现代化的前端应用程序
Vue.js 是一个流行的 JavaScript 框架,用于构建现代化的前端应用程序。它的目标是通过提供简洁、灵活的语法和强大的功能,让开发者更轻松地构建交互式的用户界面。
55 0
|
7月前
|
存储 JavaScript NoSQL
使用Node.js构建强大的后端应用程序
Node.js是一个基于Chrome V8引擎构建的JavaScript运行时环境,它可以帮助开发者构建快速、可扩展和高性能的后端应用程序。在本篇文章中,我们将介绍一些与Node.js相关的技术,让你更好地利用这个强大的工具。
120 0
|
4月前
|
负载均衡 JavaScript 算法
Node.js 多进程的概念、原理、优势以及如何使用多进程来提高应用程序的性能和可伸缩性
Node.js 多进程的概念、原理、优势以及如何使用多进程来提高应用程序的性能和可伸缩性
43 1
|
2月前
|
JSON 前端开发 JavaScript
【网络安全必备 | 前端开发基础】一篇文章速学 JavaScript
【网络安全必备 | 前端开发基础】一篇文章速学 JavaScript
55 0