Spo*_*pot 7 javascript css regex minimize node.js
我有一个我用node.js写的海峡前向聚合器/最小化器/ cacher.它现在运作得很好.
然而,我想知道是否有任何方法可以改善我的最小化正则表达式调用.有些评论完全不是来自CSS的条纹,我注意到其他一些小问题.
另外,考虑到我使用正则表达式的能力,我可以在一半的调用中做同样的事情.:)
任何建议将不胜感激.
谢谢.
function minimizeData( _content ) {
var content = _content;
content = content.replace( /(\/\*.*\*\/)|(\n|\r)+|\t*/g, '' );
content = content.replace( /\s{2,}/g, ' ' );
content = content.replace( /(\s)*:(\s)*/g, ':' );
content = content.replace( /(\s)+\./g, ' .' );
content = content.replace( /(\s|\n|\r)*\{(\s|\n|\r)*/g, '{' );
content = content.replace( /(\s|\n|\r)*\}(\s|\n|\r)*/g, '}' );
content = content.replace( /;(\s)+/g, ';' );
content = content.replace( /,(\s)+/g, ',' );
content = content.replace( /(\s)+!/g, '!' );
return content;
}
Run Code Online (Sandbox Code Playgroud)
function minimizeData( _content ) {
var content = _content;
content = content.replace( /\/\*(?:(?!\*\/)[\s\S])*\*\/|[\r\n\t]+/g, '' );
// now all comments, newlines and tabs have been removed
content = content.replace( / {2,}/g, ' ' );
// now there are no more than single adjacent spaces left
// now unnecessary: content = content.replace( /(\s)+\./g, ' .' );
content = content.replace( / ([{:}]) /g, '$1' );
content = content.replace( /([;,]) /g, '$1' );
content = content.replace( / !/g, '!' );
return content;
}
Run Code Online (Sandbox Code Playgroud)
应该更清楚一点,避免重复.第一次更换后,只剩下空格; 在第二次更换后,只有单个空格.这使得以下替换更容易.
解释删除注释的正则表达式(此处显示为没有分隔符的纯详细正则表达式):
/\* # Match /*
(?: # Match (any number of times)...
(?!\*/) # ... as long as we're not right before a */:
[\s\S] # any character (whitespace or non-whitespace).
)* # (End of repeated non-capturing group)
\*/ # Match */
Run Code Online (Sandbox Code Playgroud)