Foros del Web » Programando para Internet » Javascript »

Reemplazar palabras en una variable con expresiones regulares no lo hace

Estas en el tema de Reemplazar palabras en una variable con expresiones regulares no lo hace en el foro de Javascript en Foros del Web. Hola señores Estoy tratando de aprender a usar las expresiones regulares y pretendi hacer el siguiente efecto (que funciona) a traves de una funcion: Código ...
  #1 (permalink)  
Antiguo 12/09/2010, 17:02
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Reemplazar palabras en una variable con expresiones regulares no lo hace

Hola señores

Estoy tratando de aprender a usar las expresiones regulares y pretendi hacer el siguiente efecto (que funciona) a traves de una funcion:

Código HTML:
var txt = "Este es un texto de Junior para Junior ver como funciona y Junior convencer a otros usuarios.";
alert ( txt.replace(/Junior/g, 'JuniHH') );
Aplique lo mismo via una funcion de la siguiente forma:

Código HTML:
function rplc (str,wrd,rpl)
{
	return str.replace(/wrd/g, rpl);
};

var txt = "Este es un texto de Junior para Junior ver como funciona y Junior convencer a otros usuarios.";

var txtRpl = rplc (txt,'Junior','JuniHH');
alert (txtRpl);
No funciono. Entiendo que por la forma como paso el nombre de la variable donde se guarda el valor a reemplazar.

Como se puede pasar una variable y que la expresion regular haga el trabajo de reemplazo del valor ??
__________________
JuniHH
- Mi blog
- Mi portafolio
  #2 (permalink)  
Antiguo 12/09/2010, 17:13
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Reemplazar palabras en una variable con expresiones regulares no lo hace

Prueba así:
Código Javascript:
Ver original
  1. function rplc (str,wrd,rpl)
  2. {
  3.     return str.replace(wrd, rpl);
  4. };
  5.  
  6. var txt = "Este es un texto de Junior para Junior ver como funciona y Junior convencer a otros usuarios.";
  7.  
  8. var txtRpl = rplc (txt,/Junior/g,'JuniHH');
  9. alert (txtRpl);
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 12/09/2010, 18:44
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Respuesta: Reemplazar palabras en una variable con expresiones regulares no lo hace

Gracias @_cronos2, aunque la intencion era hacer el reemplazo de la palabra en cuestion sin necesidad de "for" o "while".
__________________
JuniHH
- Mi blog
- Mi portafolio
  #4 (permalink)  
Antiguo 12/09/2010, 19:55
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Respuesta: Reemplazar palabras en una variable con expresiones regulares no lo hace

Encontre la solucion luego de indagar un poco mas (bastante simple, por cierto):

Código HTML:
var txt = "Este es un texto de Junior para Junior ver como funciona y junior convencer a otros usuarios.";

function rplc (str,wrd,rpl)
{
	return str.replace (RegExp(wrd,'gi'),rpl);
};

alert ( rplc(txt,'Junior','JuniHH') );
__________________
JuniHH
- Mi blog
- Mi portafolio
  #5 (permalink)  
Antiguo 13/09/2010, 05:21
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Reemplazar palabras en una variable con expresiones regulares no lo hace

Era la solución que tenía reservada por si la otra no funcionaba xD
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #6 (permalink)  
Antiguo 13/09/2010, 06:55
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Respuesta: Reemplazar palabras en una variable con expresiones regulares no lo hace

jajaja, te pasaste, jajajajaj
__________________
JuniHH
- Mi blog
- Mi portafolio
  #7 (permalink)  
Antiguo 13/09/2010, 07:48
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Reemplazar palabras en una variable con expresiones regulares no lo hace

Hola

En realidad la expresión es correcta pero puede hacer aguas. Prueba con estas dos expresiones.
Cita:
var txt = "Este es un texto de Junior para JuniorTT ver como funciona y junior convencer a otros usuarios.";

function rplc ()
{
alert (txt.replace(/\b(Junior)\b/gi, 'JuniHH')); // Encuentra justamente lo que buscamos
//alert (txt.replace(/Junior/gi, 'JuniHH')); // Es menos exacta
};
Fíjate en el cambio que he hecho en la variable txt y como afectará al resultado dependiendo de si usamos un expresión u otra
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Etiquetas: expresiones, palabras, reemplazar, regulares, variables
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 10:48.