Chinaunix首页 | 论坛 | 博客
  • 博客访问: 56744
  • 博文数量: 5
  • 博客积分: 1431
  • 博客等级: 上尉
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2005-06-14 13:52
文章分类

全部博文(5)

文章存档

2009年(2)

2008年(3)

我的朋友

分类:

2008-11-24 20:34:12

一直以来都想做一个去掉表格源代码中的格式代码,总是没有时间,前几天终于花了几个小时的时间做一个比较简单的。

适用范围:
   这个功能主要给网站的编辑使用,例如,一般网站的编辑人员从别的网站上看到一个表格,复制下来,想粘贴到自己的网站中,这时,就是希望只把表格和表格里的文字复制出来,不需要原来表格中的格式代码(例如表格宽度,对齐方式,字体大小等等)。
  
   演示地址如下:


其实,只是一段JAVASCRIPT代码,具体代码如下:


    function dropformat(oname,nname){
        var o = document.getElementById(oname);
        var ot = o.value;
        var result = proc(ot);
        if(result){
            document.getElementById(nname).value=result;
            document.getElementById('showtable').innerHTML = result;
            
        }else{
            alert('处理出错!');
        }
        return false;
    } 
  

    function proc(str){
        
        var p = /<\s*(table|tr|td|tbody|thead|th)[^>]*>/img;
        e = str.replace(p,function($0,$1,$2){
            var hm=$0;
            var m=$1;
            switch(m.toUpperCase()){
                case 'TABLE':
                    return '

';
                    break;
                case 'TR':
                    return '
';
                case 'TD':
                    var k =/colspan\s*=(\s|'|")*\d+(\s|'|")*/img;
                    var ma = hm.match(k);
                    var et = '
/img,'\n\r<tr>');
        var e = e.replace(/
                    if(ma !=null){
                        et = et+ ma[0]+' ';
                    }
                        
                    var k =/rowspan\s*=(\s|'|")*\d+(\s|'|")*/img;
                    var ma = hm.match(k);
                    if(ma !=null){
                        et = et+ma[0] +'
';
                    }
                    
                    return et +'
>';
                case '
THEAD':
                    return '
<thead>';
                case '
TH':
                    return '
<th>';
                    
                case '
TBODY':
                    return '
<tbody>';
                default:
                    
                }
        
        
        
        });

        var e = e.replace(/<[ |\r|\n| ]*p[^>]*>/img,'
');
        var e = e.replace(/<[ |\r|\n| ]*\/[ |\r|\n| ]*p[^>]*>/img,'
');
        var e = e.replace(/<[ |\r|\n| ]*span[^>]*>/img,'
');
        var e = e.replace(/<[ |\r|\n| ]*\/[ |\r|\n| ]*span[^>]*>/img,'
');
        var e = e.replace(/<\s*div[^>]*>/img,'
');
        var e = e.replace(/<\s*\/[ |\r|\n| ]*div[^>]*>/img,'
');
        var e = e.replace(/<\/o:p>/img,'
');
        var e = e.replace(/<[ |\r|\n| ]*strong[^>]*>/img,'
');
        var e = e.replace(/<[ |\r|\n| ]*\/[ |\r|\n| ]*strong[^>]*>/img,'
');
        var e = e.replace(/[ |\r|\n| ]{2,}/img,'
');
        var e = e.replace(/<[ |\r|\n| ]*font[^>]*>/img,'
');
        var e = e.replace(/<[ |\r|\n| ]*\/[ |\r|\n| ]*font[^>]*>/img,'
');
        var e = e.replace(/
/img,'\n<td>');

        return e;

}

阅读(2758) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~