Foros del Web » Programación para mayores de 30 ;) » RegExp »

Expresión Regular?

Estas en el tema de Expresión Regular? en el foro de RegExp en Foros del Web. Estaba viendo un script el otro día y vi lo siguiente: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original ( /description/ . test ( rssdata. displayoptions ...
  #1 (permalink)  
Antiguo 18/11/2011, 10:58
Avatar de Rappa  
Fecha de Ingreso: noviembre-2011
Ubicación: Montevideo, Uruguay
Mensajes: 80
Antigüedad: 12 años, 5 meses
Puntos: 13
Pregunta Expresión Regular?

Estaba viendo un script el otro día y vi lo siguiente:
Código Javascript:
Ver original
  1. (/description/.test(rssdata.displayoptions)? entries[i].content : entries[i].contentSnippet)

Lo que no entiendo, es la expresión:
Código Javascript:
Ver original
  1. /description/.test(rssdata.displayoptions)

O sea, asumo que "/description/" es una expresión regular por las barras inclinadas, pero no entiendo como funciona con el .text(...) de jQuery.


Si alguien me lo puede explicar se lo agradecería.
__________________
Drugs and alcohol are not the answer
Unless you are asking what i'm doing this weekend
  #2 (permalink)  
Antiguo 18/11/2011, 11:18
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Expresión Regular?

buenas,
ciertamente todo lo que esta dentro de las barras diagonales es una expresión regular. dado que no veo como estas empleando la función text he de suponer que lo estas pasando como argumento de test. simplemente, text devuelve el contenido de un elemento y sus decendientes en forma de texto, contrario a la función html que devuelve el código fuente. entonces, en dicho caso la expresión se evalua con el texto devuelto por la función text.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 18/11/2011, 12:49
Avatar de Rappa  
Fecha de Ingreso: noviembre-2011
Ubicación: Montevideo, Uruguay
Mensajes: 80
Antigüedad: 12 años, 5 meses
Puntos: 13
Respuesta: Expresión Regular?

Gracias por la respuesta. La función no es mia, estaba viendo un codigo de un scroller ya que me gusta ver cómo funcionan las cosas y me topé con eso. Te pongo todo el código:

Código Javascript:
Ver original
  1. formatfeeds:function(){
  2.         function formatdate(datestr, showoptions){
  3.             var itemdate=new Date(datestr)
  4.             var parseddate=(showoptions.indexOf("datetime")!=-1)? itemdate.toLocaleString() : (showoptions.indexOf("date")!=-1)? itemdate.toLocaleDateString() : ""
  5.             return "<span class='datefield'>"+parseddate+"</span>"
  6.         }
  7.         var sagcontent='<ul>'
  8.         var slider=this, rssdata=this.setting.rssdata, entries=this.entries
  9.         for (var i=0; i<entries.length; i++){
  10.             sagcontent+='<li><a href="'+entries[i].link+'" target="'+rssdata.linktarget+'">'+entries[i].title+'</a>'
  11.                 +'<div class="rsscontent">'
  12.                 +(/description/.test(rssdata.displayoptions)? entries[i].content : entries[i].contentSnippet)
  13.                 +'</div>'
  14.                 +'<div class="rsslabel">'
  15.                 +(/label/.test(rssdata.displayoptions)? "<b>Source("+(i+1)+"):</b> "+entries[i].label+" " : "")
  16.                 +(/date/.test(rssdata.displayoptions)? formatdate(entries[i].publishedDate, rssdata.displayoptions): "")
  17.                 +'</div>'
  18.                 +'</li>\n\n'
  19.         }
  20.     sagcontent+='</ul>'
  21.     this.reloadul(sagcontent)
  22.     if (slider.setting.refreshsecs>0) //refetch contents every x sec?
  23.         setTimeout(function(){slider.fetchfeeds()}, slider.setting.refreshsecs*1000)
  24.     }

Eso de las expresiones regulares que se evaluan con lo devuelto por una función, es nativo de Javascript o funcionalidad de jQuery?

Saludos
__________________
Drugs and alcohol are not the answer
Unless you are asking what i'm doing this weekend
  #4 (permalink)  
Antiguo 18/11/2011, 13:07
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Expresión Regular?

es nativo de javascript. aca puedes ver una lista de todos los objetos, propiedades y métodos que comunmente puedes encontrar en un navegador; http://www.w3schools.com/jsref/default.asp. nótese que esta dividido por tres partes, siendo la primera los objetos de javascript en si como entidad separada. o sea, la parte más simplificada de javascript en un navegador.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 18/11/2011, 13:13
Avatar de Rappa  
Fecha de Ingreso: noviembre-2011
Ubicación: Montevideo, Uruguay
Mensajes: 80
Antigüedad: 12 años, 5 meses
Puntos: 13
Respuesta: Expresión Regular?

SI, tengo conocimiento de javascript y expresiones regulares, lo que no logro comprender es como usa la expresion regular con la función, o sea, qué obtiene de ese pedaso de codigo, cuál es el resultado de:
Código Javascript:
Ver original
  1. (/description/.test(rssdata.displayoptions)? entries[i].content : entries[i].contentSnippet)

O sea, por el contexto es obvio que devuelve una cadena de caracteres, sólo que me gustaría saber como funciona
__________________
Drugs and alcohol are not the answer
Unless you are asking what i'm doing this weekend
  #6 (permalink)  
Antiguo 18/11/2011, 13:35
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Expresión Regular?

no se si comprendo tu duda. supongo que sabrás el código tiene al menos dos partes fundamentales: un operador ternario y una expresión regular literal. literal porque usa la sintaxis literal, es decir las dos barras. seguido tiene la función test el cual toma como argumento un string. lo que hace dicha función es determinar si el patrón [en este caso description] coincide con el string. entonces, test siempre devuelve un boolean donde true significa que encontró una coincidencia y false lo contrario. por tanto, el script utiliza dicho boolean como condición para el operador ternario.

quizas lo entiendas mejor asi, el cual produce exactamente el mismo resultado.
Código:
var patron = /description/;
var coincide = patron.test(rssdata.displayoptions);
if(coincide){
entries[i].content;
} else {
entries[i].contentSnippet;
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: jquery
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 16:07.