我正在尝试删除所有样式规则,例如此<style>blablabla</style>
,包括<style>
标记。
我正在使用以下脚本来完成此操作
var text = '< style type= "text/css" > hello1 < / sTyle >
some text
< style type= "text/css" > hello2 < / sTyle >';
var regX = /< *style .*>([\s\S]*?)< *\/ *style *>/ig;
text.replace(regX, "");
但它会删除整个文本,包括两个样式定义之间的“some text”。我想在这个例子中保留“一些文字”。
答案 0 :(得分:1)
问题出在这里
< *style .*>
.*
匹配所有内容。
将正则表达式更改为
/< *style .*?>([\s\S]*?)< *\/ *style *>/ig
或
/< *style [^>]*>([\s\S]*?)< *\/ *style *>/ig
请注意,目前您的正则表达式错过了案例,例如
<style></style>
您可以考虑使用实际的HTML解析器。
答案 1 :(得分:1)