将字符串转为样式数组对象
const inputString = `
<style> [codev_id=”id_3790139″]:hover {display:grid;margin-top:20px;} </style>
<style> [codev_id=”id_2346894″] > [codev_id=”id_1234567″] {font-size:25px;color:#555;} </style>
<style> [codev_id=”id_9758692″] {font-size:14px;color:#999;margin-top:10px;} </style>
<style> [codev_id=”id_6314683″] .class-name {font-size:15px;line-height:25px;} </style>
`;
const regex = /<style>s*([sS]*?){([sS]*?)}s*</style>/g;
const result = [];
while((match = regex.exec(inputString)) !== null){
const selector = match[1].trim();
const stylesString = match[2];
const styles = stylesString.split( ; ).filter(s => s.trim() !== );
const styleObj = {};
// 将样式字符串转换为对象
styles.forEach(style => {
const [key, value] = style.split( : ).map(s => s.trim());
styleObj[key] = value;
});
// 将结果添加到数组中
result.push({
selector,
styles: styleObj
});
}
console.log(result);
//将样式数组对象转换为字符串
function resultToCssString(result) {
return result.map(item => {
// 将样式对象转换回 CSS 字符串
const stylesString = Object.entries(item.styles).map(([key, value]) => `${key}:${value};`).join( );
// 组合选择器和样式字符串
return `${item.selector} { ${stylesString} }`;
}).join(
); // 使用换行符分隔每个样式块
}




