Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

168
Vistas
Convierta la declaración CSS en un objeto Javascript

Escribí un script que extrae la declaración @font-face de CSS y ahora me gustaría convertirlo en un objeto javascript. Aquí hay un ejemplo de cómo se verá la cadena original:

 {font-family:GT Alpina;font-weight:100;src:url(/next/contenthash/next/fonts/gt-alpina/thin/GT-Alpina-Standard-Thin.contenthash.3322f75174e682b58d25cca4c516f38b51edb6ef.woff2) format("woff2");font-display:swap}

Esa es la cadena que me gustaría convertir en un objeto ^.

Intenté usar JSON.parse() , pero no funciona porque no es una cadena codificada en JSON. ¿Hay una forma simple que me falta para convertir esta cadena en un objeto javascript, o tendré que recorrerla y convertirla manualmente?

Cualquier ayuda es apreciada, ¡gracias!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El punto clave es usar expresiones regulares para convertir CSS a formato JSON y luego usar JSON.parse . En el código se incluye una descripción de cada replace de repuesto.

 var css = '{font-family:GT Alpina;font-weight:100;src:url(/next/contenthash/next/fonts/gt-alpina/thin/GT-Alpina-Standard-Thin.contenthash.3322f75174e682b58d25cca4c516f38b51edb6ef.woff2) format("woff2");font-display:swap}'; cssObject = JSON.parse(css .replace(/"/g, '\\"') // add \ before " .replace(/\s*\{\s*/, '{"') // add start " .replace(/\s*;?\s*\}\s*/, '"}') // add end " .replace(/\s*:\s*/g, '":"') // replace : with ":" .replace(/\s*;\s*/g, '","') // replace ; with "," ); console.log("CSS Object: ", cssObject);

Para convertir claves a formato camello se requiere otro replace como el siguiente código:

 var css = '{font-family:GT Alpina;font-weight:100;src:url(/next/contenthash/next/fonts/gt-alpina/thin/GT-Alpina-Standard-Thin.contenthash.3322f75174e682b58d25cca4c516f38b51edb6ef.woff2) format("woff2");font-display:swap}'; cssObject = JSON.parse(css .replace(/"/g, '\\"') // add \ before " .replace(/\s*\{\s*/, '{"') // add start " .replace(/\s*;?\s*\}\s*/, '"}') // add end " .replace(/\s*:\s*/g, '":"') // replace : with ":" .replace(/\s*;\s*/g, '","') // replace ; with "," .replace(/"([^"]+)":/g, (full, property) => '"' + property.toLowerCase().replace(/-(\w)/, (a, b) => b.toUpperCase()) + '":') ); console.log("CSS Object with Camel Format: ", cssObject);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda