Gracias por las aportaciones Manuel, las tendré en cuenta en la medida de lo
aplicable (para mi, claro :P, dependiendo de como me lie).
Explico un poco más...
Lo que hago es:
- cargo el CSS es un string
- le quito los tabs y los saltos de línea
/*
eliminaTab:function($css){
return $css.replace(/\t/g,"");
},
eliminaNL:function($css){
$css=$css.replace(/\n/g,"");
return $css.replace(/\r/g,"");
},
*/
- Luego extraigo los selectores con otra expresión regular:
/*
expresion = /(.*?{.*?})/g
*/
- Finalmente, eso al tenerlo en un array puedo validar y/o extraer los
datos. En mi caso lo enchufo todo en un objeto. No pongo ejemplo porque no
se por donde agarrarlo.
- Finalmente para parsear las declaraciones uso, weno, es algo así mas o
menos:
/*
var dades = estil.split("{");
selector = dades[0];
estil = dades[1].split("}")[0];
var props = obj.estil.split(";");
var selektor = cse.trim(obj.selector);
*/
claro, si no me ponen los ; se me escacharra el invento ... lo que, podría
no quitar los saltos de línea y hacerlo con ; y con \n ... umf, no se no se
....
Creo que lo que haré será hacer lo que dices de usar expresiones cada vez
más precisas. Y yo me pregunto, como leches lo hacen los ingenieros de
mozilla/opera/safari para poder parsear el código HTML, y no me digais que
usan librerías porque me interesa saber como funciona a nivel interno, no
una capa intermedia :).
Alguna aportacioni má?
Y de regalo, para que veais como van los tiros:
http://www.promsite.org/vstatsv/styledit.php
Ruego no utiliceis eso de momento, ya que está MUY verde... Una vez
terminado ya lo abriré :)
Ah!, de regalo tambien, un nuevo evento para elementos HTML copiado de
flash, el onEnterFrame:
Ej:
c=0;
document.getElementById("capa").onEnterFrame=function(){
c++;
this.style.border = c+"px solid red";
}
Si os gusta, echad un ojo a:
http://www.nbsp.es/2006/08/23/elemento-html-onenterframe-y-se-hizo-la-animacion-dhtml-facil/
saludos!
Marc Palau
http://www.nbsp.es
----- Original Message -----
From: "Manuel Razzari" <[EMAIL PROTECTED]>
To: <[email protected]>
Cc: <[EMAIL PROTECTED]>
Sent: Thursday, August 24, 2006 4:39 PM
Subject: Re: [javaEScript] Expresiones regulares y etiquetas (x)HTML
> He puesto como ejemplo (x)HTML, como podría haber puesto javascript. Es
> decir, tengo la necesidad de encontrar patrones, teniendo un margen de
error
> en la escritura de los mismo.
> Por ahora funciona si lo que escribes está correctamente formateado
> "selector { contenido; contenido; }" si le quitas los ; ya falla ...
Me parece bastante interesante, me gustaría verlo cuando esté terminado :)
Algunas ideas sueltas y al azar:
- Puedes usar opcionales en tus regexp, ej /contenido;?/ para hacer
opcional el punto y coma
- Puedes hacer un split por módulos (ej, funciones de javascript,
reglas en css) o por línea y darle un syntax error al usuario "error
en #selector".
- Hasta donde imagino, un solo regexp acierta o falla, no tiene
términos medios. Tal vez pensando en una sucesión de regexp más y más
precisos que permitan identificar el error del usuario...
_______________________________________________
javaEScript mailing list
[email protected]
http://lists.scriptia.net/listinfo.cgi/javaescript-scriptia.net