Foros del Web » Programando para Internet » Javascript »

no entiendo este script...alguien me lo aclara?

Estas en el tema de no entiendo este script...alguien me lo aclara? en el foro de Javascript en Foros del Web. Hola gent@s: Ando un poco flipado con la siguiente función de javascript xq no entiendo casi nada. Os señalo las partes que no entiendo. Os ...
  #1 (permalink)  
Antiguo 18/12/2007, 11:08
 
Fecha de Ingreso: diciembre-2007
Mensajes: 2
Antigüedad: 16 años, 4 meses
Puntos: 0
no entiendo este script...alguien me lo aclara?

Hola gent@s:

Ando un poco flipado con la siguiente función de javascript xq no entiendo casi nada. Os señalo las partes que no entiendo.

Os pongo en antecedentes: esta función está en un sitio web que usa el script "ligthbox 2.02". El caso es que las imágenes se muestran dentro de un flash, y supongo que el flash llama a esta función, aunque no estoy seguro.

la función es la siguiente:

function amplia(foto) {

rExp = /big\//gi;
foto_grande = foto.replace(rExp, "");
rExp2 = /images_catalogo\//gi; //-->¿QUE HACE ESTO?(images_catalogo es el dir de fotos)

rExp3 = /([0-9]{1,12})\//gi; -->¿QUE ES ESTO?

re=/^\/f([0-9]{1,12}).jpg$/ -->¿QUE ES ESTO? XQ NO LLEVA PUNTO Y COMA AL FINAL? -->

num_foto_tmp = foto_grande.replace(rExp2, ""); -->¿QUE SE SUPONE QUE SUSTITUYE ESTO?
num_foto_tmp2 = num_foto_tmp.replace(rExp3, ""); -->¿QUE SE SUPONE QUE SUSTITUYE ESTO?

vect=re.exec(num_foto_tmp2) -->¿QUE ES ESTO? EXISTE "EXEC" EN JAVASCRIPT???
num_foto=vect[1];

myLightbox.start_3("http://'.$dominio.'", foto_grande, num_foto, "lightbox[xtress]");
}
</script>


CUALQUIER ACLARACIÓN SERÁ MUY AGRADECIDA!!!
  #2 (permalink)  
Antiguo 18/12/2007, 11:56
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: no entiendo este script...alguien me lo aclara?

rExp2, rExp3 y re son expresiones regulares

Código:
num_foto_tmp = foto_grande.replace(rExp2, "");
quiere decir "reemplaza las ocurrencias de la expresión regular con una cadena vacía".
En este caso, quitará imagenes_catalogo/ de la cadena.
Código:
num_foto_tmp2 = num_foto_tmp.replace(rExp3, "");
Sustituirá secuencias de números, conteniendo al menos 1 y como máximo 12 dígitos, con una cadena vacía.
Código:
vect=re.exec(num_foto_tmp2)
"Ejecuta" la expresión regular, es decir, hace la comparación entre la cadena y la expresión.
Esto sirve para guardar el contenido de los paréntesis en la expresión regular en cada parte de vect.

Según lo veo, el programa es algo así:

tiene una ruta tipo

imagenes_catalogo/1234567/big/f12345667.jpg

el el primer reemplazo (rExp) elimina "big/":

imagenes_catalogo/1234567/f12345667.jpg

En el segundo (rExp2) elimina imagenes_catalogo

1234567/f12345667.jpg

En el tercero (rExp3) elimina la carpeta con números:

f12345667.jpg

y con "re", obtiene la parte numérica del nombre en vect[1]

Luego abre una "Lightbox" pasándole esa parte numérica como uno de sus parámetros.

No sé exactamente cuál es el motivo de hacer tantos pasos solo para obtener una parte numérica, pero bueno, eso es lo que entiendo de estas líneas.



Saludos.
  #3 (permalink)  
Antiguo 18/12/2007, 12:12
 
Fecha de Ingreso: diciembre-2007
Mensajes: 2
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: no entiendo este script...alguien me lo aclara?

muchas gracias alvlin!!!

la verdad es que nunc había oido eso de las expresiones regulares... ahora ya está claro!!

Y bueno...lo de hacer tantos pasos...me temo que esto no es más que un parche chapucero para hacer funcionar los del "ligthbox"...hasta 3 versiones han hecho!! (vease lo de start_3)

De nuevo muchas gracias! a ver si lo hago funcionar ahora
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:48.