首页js教程 正文

js实现css压缩和反压缩功能

时间: 2020年5月20日 浏览 2760

最近一直在整理css,但因为现在Visual Studio 2019太智能了,它每每在我按ctrl+E+D进行格式化代码的时候,就会将css进行层次格式化(如下图所示),而这个格式让我老大实在无法忍受,我老大认为它实在是太浪费空间了。

那我应该怎么办呢,每次将本地代码上传之前都打开另外一个vs10,然后复制粘贴,可是下次从服务器拉下来代码我一编辑,手痒一下就又变成上面这个鬼样,折磨的我呀

<script type="text/javascript">
 function $(id) { return document.getElementById(id); }
 function cssCode(obj) {
 this.init = function () {
 var code = obj.value;
 if (!this.code || this.code == "") this.code = code;//先保存起来 以方便后续还原
 code = code.replace(/(\n|\t|\s)*/ig, '$1');
 code = code.replace(/\n|\t|\s(\{|\}|\,|\:|\;)/ig, '$1');
 code = code.replace(/(\{|\}|\,|\:|\;)\s/ig, '$1');
 return code;
 }
 this.compress = function () {
 var code = this.init();
 return code;
 }
 this.format = function () {
 var code = this.init();
 code = code.replace(/(\{)/ig, ' $1');
 code = code.replace(/(\{|\;)/ig, '$1\n\t');
 code = code.replace(/\t*(\})/ig, '$1\n');
 code = code.replace(/(\*\/)/ig, '$1\n');
 return code;
 }
 this.formatOver = function () {
 var code = this.init();
 code = code.replace(/(\})/ig, '$1\n');
 code = code.replace(/(\*\/)/ig, '$1\n');
 return code;
 }
 this.recover = function () {
 return (this.code) ? this.code : obj.value;
 }
 var my = this;
 obj.onkeydown = function () {
 my.code = "";
 }
 }
 var code = new cssCode($('cssCode'));
 </script>
简单几句话,也就是利用正则将换行、tab键、空格等去掉来实现压缩。