http://www.ibm.com/developerworks/cn/web/wa-lo-firefox-ext/index.html
<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的更多相关文章
- http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/index.html
http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/index.html
- http://www.ibm.com/developerworks/cn/java/j-lo-junit-src/
http://www.ibm.com/developerworks/cn/java/j-lo-junit-src/
- http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/
http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/
- http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/
http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/
- 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 ...
- 使用 CAS 在 Tomcat 中实现单点登录 http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/
developerWorks 中国 技术主题 Open source 文档库 使用 CAS 在 Tomcat 中实现单点登录 单点登录(Single Sign On , 简称 SSO )是目前比较流行 ...
- Java Content Repository API 简介 转自(https://www.ibm.com/developerworks/cn/java/j-jcr/)
Java Content Repository API 简介 1 如果曾经试过开发内容管理应用程序,那么您应当非常清楚在实现内容系统时所遇到的固有难题.这个领地有点支离破碎,许多供应商都有自己的私有仓 ...
- robotframework安装和配置【转IBM:https://www.ibm.com/developerworks/cn/opensource/os-cn-robot-framework/index.html】
内容 概览 Robot Framework 介绍 Robot Framework 的安装和配置 RIDE 编辑器介绍 创建测试项目 简单的测试用例的编写 总结 相关主题 评论 Robot Fr ...
- 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 ...
随机推荐
- boobmarklet
bookmarklet ,一般都称呼为小书签.它是一段 JavaScript 脚本,一般网络上的小书签都是一个链接,它的安装非常简单,只需要把链接拖到你的收藏夹里. 利用它,可以实现一些页面优化.性能 ...
- 【opencv学习笔记五】一个简单程序:图像读取与显示
今天我们来学习一个最简单的程序,即从文件读取图像并且创建窗口显示该图像. 目录 [imread]图像读取 [namedWindow]创建window窗口 [imshow]图像显示 [imwrite]图 ...
- 用python监控您的window服务
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://world77.blog.51cto.com/414605/782935 最近比较 ...
- oracle针对中文排序
在oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择: 按中文拼音进行排序:SCHINESE_PINYIN_M 按中文部首进行排序:SCHINESE_RA ...
- Linux运行Tomcat下的war文件
1.查看Tomcat进程: ps -ef |grep tomcat 2.关闭Tomcat进程: kill -9 pid 3.关闭Tomcat运行: bin目录下执行 ./shutdown.sh 4. ...
- CF-839A
A. Arya and Bran time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- 4.xpath注入详解
0x01 简介 XPath注入攻击是指利用XPath 解析器的松散输入和容错特性,能够在 URL.表单或其它信息上附带恶意的XPath 查询代码,以获得权限信息的访问权并更改这些信息.XPath注入发 ...
- SQL Server 截取两个固定字符之间的字符串(案例)
网上的问题: 参考这篇<函数PARSENAME使用和截取字符串>https://www.cnblogs.com/insus/p/10958452.html 的方法: )='||MO21|T ...
- 缓存测试分享篇:如何利用测试环境进行灰度测试缓存迁移solo
此文已由作者王婷英授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 缓存,看到这两个字,第一反应,最近怎么又要弄缓存的改造啊,这个测试好复杂,一不不留心就踩一个线上bug.实在 ...
- E20190418-hm
distinct adj. 明显的,清楚的; 卓越的,不寻常的; 有区别的; 确切的; predicate vt. 断言,断定; 宣布,宣讲; 使基于; n. 谓语; 述语;