<html>
    <head>
        <style>    
            textarea{
                width:800px;
                height:250px;
            }
        </style>
        <script>
            function trans(){
                var content = document.getElementById("content");
                //去除注释
                content = removeComment(content.value);
                //去除换行
                content = removeLine(content);
                content = removeSpace(content);    
                //转换成css数组
                var cssList = cssConvert(content);
                for(var i=0;i<cssList.length;i++){
                    alert(cssList[i].attrName + " " +cssList[i].attrValue+ " " +cssList[i].cssNum);
                }
                
                document.getElementById("result").value = content;
            }
            //转换成css数组
            
            function cssConvert(txt){
                var cssList = [];
                var isOpen = false;
                var attrName="";
                var attrValue = "";
                var cssNum = 1;
                for(var i=0;i<txt.length;i++){
                    if(txt[i] == '{') {
                        isOpen = true;
                        continue;
                    }
                    if(txt[i] == '}') {
                        isOpen = false;
                        cssList.push({attrName:attrName,attrValue:attrValue,cssNum:cssNum});
                        cssNum ++;
                        attrValue = "";
                        attrValue = "";
                        continue;
                    }
                    if(isOpen){
                        attrValue += txt[i];
                    } else {
                        attrName += txt[i];
                    }    
                }
                return cssList;
            }
            //去除换行
            function removeLine(txt){
                txt = txt.replace(/<\/?.+?>/g,"");
                txt = txt.replace(/[\r\n]/g, "");
                return txt;
            }
            function removeSpace(txt){
                var isOpen =false;
                for(var i=0;i<txt.length;i++){
                    if(txt[i]=='{'){
                        isOpen = true;
                        if(i-1>=0&&txt[i-1] == ' ') {
                            txt = removeAt(txt,i-1);
                            i--;
                        }
                    }
                    if(txt[i]=='}') isOpen = false;
                    //符合条件的去空格
                    if((i-1>=0&&i+1<txt.length&&txt[i]==' '&&isOpen ==true&&(txt[i-1]==':'||txt[i+1]==':'||txt[i-1]==' '||txt[i+1]==' '||txt[i-1]==';'||txt[i+1]==';'||txt[i-1]=='{'||txt[i-1]=='}'))||(i-1>=0&&txt[i]==' '&&txt[i-1]==' ')||(i-1>=0&&txt[i]==' '&&txt[i-1]=='}')){
                        txt = removeAt(txt,i);
                        i--;
                    } else if(i-1>=0&&i+1<txt.length&&isOpen ==false&&txt[i]==' '&&(txt[i-1]==','||txt[i+1]==','||txt[i-1]==' '||txt[i+1]==' ') ){
                        txt = removeAt(txt,i);
                        i--;
                    }
                }
                return txt;
                //return txt.replace(/\s+/g, "");//.replace(/\s+/g, "");
            }
            function removeAt(txt,i){
                temp = txt.substr(0,i);
                temp += txt.substring(i+1);
                return temp;
            }
            //去除注释
            function removeComment(txt){
                while(true){
                    var start = txt.indexOf("/*");
                    var end = txt.indexOf("*/");
                    var temp = "";
                    if(start >= 0 && end >= 0){
                        temp = txt.substring(0,start);
                        temp += txt.substring(end+2);
                        txt = temp;
                    } else {
                        return txt;
                    }    
                }
            }
        </script>
    </head>
    <body>
        <textarea id="content"></textarea>
        <input type="button" value="转换" onclick="trans()"/>
        <textarea id="result"></textarea>
    </body>
</html>

百度

http://www.ibm.com/developerworks/cn/web/wa-lo-firefox-ext/index.html的更多相关文章

  1. http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/index.html

    http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/index.html

  2. http://www.ibm.com/developerworks/cn/java/j-lo-junit-src/

    http://www.ibm.com/developerworks/cn/java/j-lo-junit-src/

  3. http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/

    http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/

  4. http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/

    http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/

  5. Infrastructure as Code 行为驱动开发指南 https://www.ibm.com/developerworks/cn/devops/d-bbd-guide-iac/index.html

    Infrastructure as Code 行为驱动开发指南 https://www.ibm.com/developerworks/cn/devops/d-bbd-guide-iac/index.h ...

  6. 使用 CAS 在 Tomcat 中实现单点登录 http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/

    developerWorks 中国 技术主题 Open source 文档库 使用 CAS 在 Tomcat 中实现单点登录 单点登录(Single Sign On , 简称 SSO )是目前比较流行 ...

  7. Java Content Repository API 简介 转自(https://www.ibm.com/developerworks/cn/java/j-jcr/)

    Java Content Repository API 简介 1 如果曾经试过开发内容管理应用程序,那么您应当非常清楚在实现内容系统时所遇到的固有难题.这个领地有点支离破碎,许多供应商都有自己的私有仓 ...

  8. robotframework安装和配置【转IBM:https://www.ibm.com/developerworks/cn/opensource/os-cn-robot-framework/index.html】

    内容   概览 Robot Framework 介绍 Robot Framework 的安装和配置 RIDE 编辑器介绍 创建测试项目 简单的测试用例的编写 总结 相关主题 评论   Robot Fr ...

  9. CDH5X 安装oozie报错To enable Oozie web console install the Ext JS library.

    最近在CDH5.X 安装oozie 服务,服务安装完毕,访问oozie server ui,报如下错误: 页面提示: Oozie web console is disabled.To enable O ...

随机推荐

  1. CentOS 6.6 搭建Zabbix 3.0.3 过程

    分享CentOS 6.6下搭建Zabbix 3.0.3 的过程,希望都大家有所帮助. 环境安装 系统环境: # cat /etc/RedHat-release CentOS release 6.6 ( ...

  2. bootstrap 全局样式

    reset.css html { font-family: sans-serif; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100% ...

  3. 跑monkey前开启/关闭下拉栏

    @echo off cls title 别忘了跑monkey啊 :menu cls color 0A echo. echo 1.禁用systemui并重启 echo. echo 2.启用systemu ...

  4. [poj3417]Network(LCA+树形dp)

    题意:给出一棵无根树,然后下面再给出m条边,把这m条边连上,每次你去两条边,规定一条是树边,一条是新边,问有多少种方案能使树断裂. 解题关键:边权转化为点权,记录每条边被环覆盖的次数,通过val[a] ...

  5. OpenType字体与TrueType字体的区别

    TrueType采用几何学中二次B样条曲线及直线来描述字体的外形轮廓,其特点是:TrueType既可以作打印字体,又可以用作屏幕显示:由于它是由指令对字形进行描述,因此它与分辨率无关,输出时总是按照打 ...

  6. NCBI SRA数据库

    简介 SRA数据库是美国国立卫生研究院(NIH)的高通量测序数据的主要归档,是国际核苷酸序列数据库协作(INSDC)的一部分,其中包括NCBI序列读取存档(SRA),欧洲生物信息学研究所(EBI)和D ...

  7. hdu4366 Successor (dfs序+zkw线段树)

    Successor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  8. c#封装dll

    https://www.cnblogs.com/xingboy/p/10287425.html

  9. poj2449(k短路&A_star模板)

    题目链接:http://poj.org/problem?id=2449 题意:给出一个有向图,求s到t的第k短路: 思路:k短路模板题,可以用A_star模板过: 单源点最短路径+高级搜索A*;A*算 ...

  10. Mac下磁盘无法抹除问题解决

    安装CentOS到扩容卡,每次安装都会造成bootcamp分区的windows出问题,遂安装ubantu,结果扩容卡有问题-->无法读取您的磁盘,打开磁盘工具无法抹除,由于无法读取在window ...