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>
最新文章
- 可能是最通俗的Lempel-Ziv-Welch (LZW)无损压缩算法详述
- db2 with ur
- web项目 验证码 *** 最爱那水货
- Mysql学习笔记(十)存储过程与函数 + 知识点补充(having与where的区别)
- MyEclipse 6.5 代码自动提示功能配置教程
- [Cocos2d-x for WP8学习笔记] HelloWorld
- 7 款令人赞叹的 HTML5 动画应用
- Codeforces Round #364 (Div.2) D:As Fast As Possible(模拟+推公式)
- (转)IOS内存管理 retain release
- git 使用整理
- bzoj4652 [Noi2016]循环之美
- JS基础属性跟运算
- java.lang.NullPointerException 	at java.lang.ProcessBuilder.start(Unknown Source) 	at org.apache.hadoop.util.Shell.runCommand(Shell.java:482)
- 动态 hover 使用变相使用
- 逆袭之旅DAY16.东软实训.Oracle.序列
- WyBox 7620a 启用第二个串口
- Python的可迭代对象、迭代器和生成器
- 【Spring Boot&;&;Spring Cloud系列】Spring Boot项目集成Swagger UI
- python , 顺序迭代合并后的list对象
- CTF-练习平台-Misc之 妹子的陌陌
热门文章
- AtCoder Regular Contest 073 E:Ball Coloring
- TreeView滚动TreeViewItem
- CUDA 9.1/9.2 与 Visual Studio 2017 (VS2017 15.6.4) 的不兼容问题
- <;正则吃饺子>; :关于oracle 中 exists 、not exists 的简单使用
- WCF IIS部署
- hadoop学习笔记之-hbase完全分布模…
- 网络爬虫之Xpath用法汇总
- Jdk 1.7*安装并配置
- Spring入门第十九课
- ListView Item 里多种点击事件的用法