是否可以使用正则表达式替换将页内样式表移动到部分?

时间:2012-03-23 14:53:29

标签: javascript php css regex

假设我有一个这样的html页面:

在:

<!DOCTYPE HTML>
<html>
<head>
<title>test</title>
<link rel="stylesheet" type="text/css" href="http://www.domain.com/css1.css">
</head>
<body>
<style type="text/css">
.test1{clear:both}
.test2{width:110px}
...
</style>
</body>
</html>

后:

<!DOCTYPE HTML>
<html>
<head>
<title>test</title>
<link rel="stylesheet" type="text/css" href="http://www.domain.com/css1.css">
<style type="text/css">
.test1{clear:both}
.test2{width:110px}
...
</style>
</head>
<body>
</body>
</html>

只是好奇是否可以通过Regex替换来完成?

非常感谢。

PS:或者有人知道google pagespeed apache2扩展程序是如何将css移动到头部的吗?

2 个答案:

答案 0 :(得分:0)

您可以编写一个小应用程序来解析html文件,过滤样式标记,从标记中删除它们并在头部创建样式标记并再次保存html文件。

但是让我们面对现实,当我们在这里谈论一两个html文件时,你会花更多的时间来开发那个应用程序,而不仅仅是手工清理你的烂摊子。

答案 1 :(得分:0)

我正在我的一个项目中处理相同的任务,我已经制作了一个选择所有内联样式的javascript正则表达式,你可以在你的项目中使用它。

/<(style)[^>]*?>(?:.|\n)*?</\s*\1\s*>/igm

您可以在http://www.regexr.com

上测试此正则表达式