用Javascript实现查看CSS属性使用频率的功能

var str = "";
var str = str.replace(/\s+"/g,"").match(/(;[\w-]+:)|({[\w-]+:)/g);
var cssProperty = [];  //存储css属性的数组
var result= [];        //存储结果的数组
var obj = {};

outloop:
for(var i=0; i<str.length; i++){
  var nstr = str[i].replace(/;/,"").replace(/{/,"").replace(/:/,"");
  innerloop:  //过滤重复的css属性
  for(var j=0; j<cssProperty.length; j++){
    if(cssProperty[j] == nstr) continue outloop;
    }
  cssProperty.push(nstr);
}

//创建可以用来排序的对象
for(var i=0; i<cssProperty.length; i++){
	 var totle = checkStr(cssProperty[i],str1);
   obj["css"] = cssProperty[i];
   obj["value"] = totle;
   result.push(obj);
   obj = {};
}

//重新排序结果数组
result.sort(compare('value')).reverse();


//打印
for(var i=0; i<result.length; i++){
  document.write(result[i]["css"]+":"+result[i]["value"]+"<br/>");
}


//用于数组排序的函数
function compare(name){
  return function(obj1,obj2){
    var value1 = obj1[name];
    var value2 = obj2[name];

    if(value1<value2){
      return -1;
    }
    else if(value1>value2){
      return 1;
    }
    else{
      return 0;
    }
   };
  }

//返回有多少可以匹配的字符串(css属性)
function checkStr(str,string){
  var pattern = new RegExp('[^-]'+str+':','g');
  
  var ar =[];
  for(var i=0;i<string.length; i++){
  	 var ex = pattern.exec(string);
  	 var lastIndex = pattern.lastIndex;
  	 if(lastIndex == 0) return ar.length;
  	 ar.push(lastIndex);
  	 
  }
}


现在只要给变量str赋css样式字符串,运行就可以看到结果了,我拿了个3000多行的样式表打印的结果如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值