前端代码很自由,这就导致了多数人代码风格比较乱。我是很看不惯代码太乱的,所以,我拿到一些开源的代码的时候,第一件事情,就是对代码进行风格调整。

在不断的追求代码风格统一的过程中,从一开始的自动格式化工具,到一行一行改,到全局替换,到全局正则替换,发现 eclipse 的正则替换实在是太好用了。

把平时可能用到的罗列一下

不带花括号的简单 if else 语句

if (xxx)
    xxx;
else
    xxx;

变成

if (xxx) {
    xxx;
} else {
    xxx;
}

Find:

if \((.+)\)\R(\t+)([^\t]+;)\R(\t+)else\R(\t+)([^\t]+;)

Replace:

if ($1) {R$2$3R$4} else {R$5$6R$4}

不带花括号的 if / for / while 语句

if/for/while (xxx)
    xxx;

变成

if/for/while (xxx) {
    xxx;
}

Find:

(\t+)(if|for|while) *((.+)) *\R(t+)([^t]+;)

Replace:

$1$2 \($3\) \{\R$4$5\R$1\}

删除多余的空行

空行是用以分割代码逻辑块的,而有些人的空行是扯皮的,完全寻不着章法。很不能理解有些人在 { 换行之后(像 functioniffor 等),加一个空行再写代码 - 而且他不是每个 { 之后都这样 -_-‘

Find:

\{\R\t*\R

Replace:

\{\R

同样也不能理解 } 之前有个空行。

Find:

\R\t*\R(\t*)\}

Replace:

\R$1\}

补充遗漏的缩进

Find:

\R(\t+.+)\R\R(\t+)(\S)

Replace:

\R$1\R$2\R$2$3

多余的逗号 - 会让 IE 不工作的那种

Find:

,\R([\t ]*)\}

Replace:

R$1}

最后补充

以上的正则适用于代码本身就比较整齐的那种。如果,你平时本身就不管多一个空格少一个空格,或者换行乱换,tab、空格混用,那你的正则表达要写的复杂一些了。

全局替换前最好能预览一遍,以免有些误改了。

最重要的还是,作为一个写代码的人,千万要有自己统一的风格,代码风格没有最漂亮的,只有最统一的。