¿Cómo capturar el bloque de reglas css en una cadena? Esto es demasiado difícil para mí de capturar, sin la nueva línea.
.fa { color: red; } small { font-size: 16px; } #content { background-color: blue; }Lo que quiero lograr es poner cada bloque en una matriz
['.fa { color: red; }', 'small { font-size: 16px; }', '#content { background-color: blue; }']¿Es esto posible en javascript regex?
ACTUALIZAR
Lo siento chicos, pensé que esto solo se podía resolver con expresiones regulares, pero obtuve una respuesta que es mucho más simple, gracias
Dividido por una llave de cierre:
const str = `.fa { color: red; } small { font-size: 16px; } #content { background-color: blue; } ` const res = str.split("}").map(e => e += "}") console.log(res)Puede hacer coincidir cualquier secuencia de caracteres que no sea una llave de cierre (}) hasta la llave, tantas veces como haya. Es posible que desee eliminar las nuevas líneas primero, por ejemplo
let s = `.fa { color: red; } small { font-size: 16px; } #content { background-color: blue; }`; console.log(s.match(/[^}]*}/g));Por supuesto, las reglas mal formadas causarán un problema.
const css = `.fa { color: red; } small { font-size: 16px; } #content { background-color: blue; }`; const splitCSS = css.split(/\n/g);hay una manera mucho más simple...