【发布时间】:2011-05-31 18:12:08
【问题描述】:
我正在尝试删除特定的 CSS 选择器,如果属性列表中没有更多的选择器,那么脚本会将其删除...
我能够让脚本的一部分工作:http://jsfiddle.net/jnbdz/MarRr/5/
代码如下:
$$('button')[0].addEvent('click', function(){
var css = document.id('css').get('text');
var newCss = css.replace(/(\n|\r|\s\s)/g, "")
.replace(/(,\s*body\s*(?={)|,\s*body\s*(?=,)|body\s*,|,\s*head\s*(?={)|,\s*head\s*(?=,)|head\s*,)/gi, "")
.replace(/(body\s*(?={)|head\s*(?={))/gi, "")
.replace(/(^\{[^}]*?\}|\}\s*\{[^}]*?\})/gim, "");
document.id('cleancss').set('text', newCss);
});
问题是,如果我删除换行符,我编写的脚本将无法删除与任何选择器无关的属性...
如果我保留换行符,它会起作用...
另外,如果我的代码很好,我想从擅长正则表达式的编码人员那里知道...
非常感谢您的任何帮助。
【问题讨论】:
-
我添加了标签
mootools,因为您似乎正在使用它。 -
您能举一个输入示例和每个示例所需的输出吗?
-
这是你的插件吗? mootools.net/forge/p/minimizecode ?我认为自从你在 forge 上发布以来,你已经解决了你的问题 - 只是在我的 baseBox 插件之后才注意到它:)
-
其实我还没有解决问题...
标签: javascript css regex mootools css-selectors