Foros del Web » Programando para Internet » Javascript »

problema con la funcion replace

Estas en el tema de problema con la funcion replace en el foro de Javascript en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original var str = 'fdf <font style="color:red">aaaaaaaaa</font> dsds' ; document. write ( str. replace ( /<font style="color:((.|\r)*)">((.|\r)*)<\/font>/i , "[color=$1]$2[/color]" ...
  #1 (permalink)  
Antiguo 16/05/2010, 14:00
 
Fecha de Ingreso: mayo-2010
Mensajes: 25
Antigüedad: 14 años
Puntos: 1
problema con la funcion replace

Código Javascript:
Ver original
  1. var str='fdf <font style="color:red">aaaaaaaaa</font> dsds';
  2. document.write(str.replace(/<font style="color:((.|\r)*)">((.|\r)*)<\/font>/i,"[color=$1]$2[/color]"));

me puede decir que esta mal? xq el $2 me devueve una d e.e
  #2 (permalink)  
Antiguo 16/05/2010, 14:17
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: problema con la funcion replace

eso porque tienes un parentesis anidado. las subexpresiones crean lo que se conoce como "agrupacion" y se pueden hacer referencias a ellas por un identificador. esa agrupacion se crean sin importar cuan anidados estan. en tu caso, tienes parentesis anidados, ((.|\r)*). el primer par de parentesis refleja todo lo que el segundo par encuentra. en el caso del segundo par de parentesis, refleja solamente un caracter porque estas repitiendo (el asterisco) la subexpresion, pero esa subexpression solamente parea un solo caracter a la vez.

no estoy seguro que es lo que quieras hacer, supongo que es posicionar entre los dos tag el contenido del elemento, en tu ejemplo "aaaaaaaa". si es asi, entonces te corresponde usar la tercera referencia de grupos, $3.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 16/05/2010, 15:11
 
Fecha de Ingreso: mayo-2010
Mensajes: 25
Antigüedad: 14 años
Puntos: 1
Respuesta: problema con la funcion replace

ya lo solucione, gracias

Código Javascript:
Ver original
  1. var str='fdf <font style="color:red">hola</font> dsds';
  2. document.write(str.replace(/<font style="color:(.*)">(.*)<\/font>/i,"[color=$1]$2[/color]"));

Última edición por gonza_06; 16/05/2010 a las 15:16

Etiquetas: funcion, replace
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 17:43.