Foros del Web » Programando para Internet » Javascript »

Reemplazar palabras en un cadena

Estas en el tema de Reemplazar palabras en un cadena en el foro de Javascript en Foros del Web. Supongamos que tengo este script: Código: <script> var cadena = 'Un texto cualquiera (texto)'; cadena = cadena.replace(/texto/ig, 'TEXTO'); document.write(cadena); </script> Lo quiero es que reemplace ...
  #1 (permalink)  
Antiguo 14/02/2012, 17:00
dalfeju
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Reemplazar palabras en un cadena

Supongamos que tengo este script:

Código:
<script>
var cadena = 'Un texto cualquiera (texto)';
cadena = cadena.replace(/texto/ig, 'TEXTO');
document.write(cadena);
</script>
Lo quiero es que reemplace la palabra texto siempre y cuando no esté precedida ni seguida de algún caracter (a excepción de los espacios)... en este caso, no debe de reemplazar la segunda palabra, debido a que está entre paréntesis.

No deseo que muestre esto:

Código:
Un TEXTO cualquiera (TEXTO)
Sino esto:

Código:
Un TEXTO cualquiera (texto)
Nota: Que la solución no sea agregando lo espacios, no es lo que busco...

Código:
cadena = cadena.replace(/ texto /ig, 'TEXTO');
¿Se puede?

Última edición por dalfeju; 14/02/2012 a las 17:16
  #2 (permalink)  
Antiguo 15/02/2012, 02:20
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Respuesta: Reemplazar palabras en un cadena

Cita:
Iniciado por dalfeju Ver Mensaje
Supongamos que tengo este script:

Código:
<script>
var cadena = 'Un texto cualquiera (texto)';
cadena = cadena.replace(/texto/ig, 'TEXTO');
document.write(cadena);
</script>
Lo quiero es que reemplace la palabra texto siempre y cuando no esté precedida ni seguida de algún caracter (a excepción de los espacios)... en este caso, no debe de reemplazar la segunda palabra, debido a que está entre paréntesis.

No deseo que muestre esto:

Código:
Un TEXTO cualquiera (TEXTO)
Sino esto:

Código:
Un TEXTO cualquiera (texto)

Nota: Que la solución no sea agregando lo espacios, no es lo que busco...


Código:
cadena = cadena.replace(/ texto /ig, 'TEXTO');
¿Se puede?
¿entonces que buscas?
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 15/02/2012, 15:01
dalfeju
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Reemplazar palabras en un cadena

Tengo este texto:

Código:
El elemento tiene como width:30px y height:30px, ¿está bien? :3
Supón que necesito cambiar la carita :3 por una imagen, pero al correr el script se llevaría todo:

El elemento tiene como width<img src="emo.jpg" />0px y height<img src="emo.jpg" />0px, ¿está bien? <img src="emo.jpg" />

Algo así estoy haciendo, pero tengo problemas cuando el usuario coloca códigos. Preguntaba si no existía otra manera para ahorrarme tantos problemas, debido a que se me hace muy pero muy difícil hacer eso de esa forma.

Última edición por dalfeju; 15/02/2012 a las 15:10
  #4 (permalink)  
Antiguo 15/02/2012, 15:41
dalfeju
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Reemplazar palabras en un cadena

No sé si estaré en lo correcto, pero estaba intentando en hacer algo como esto:

Código Javascript:
Ver original
  1. cadena.replace(/(<br>| ):3( |<br>)/ig, '<img src="emo.jpg" />')

Para que sólo lo reemplace si está precedida/seguida de espacio o un salto de lína... el problema es que no quiero que reemplace ni los espacios ni los saltos de líneas :\

Última edición por dalfeju; 15/02/2012 a las 16:12
  #5 (permalink)  
Antiguo 15/02/2012, 16:14
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: Reemplazar palabras en un cadena

buenas,
la clave esta en usar words boundaries. estos te permiten anclar un patrón a un punto específico de la cadena sin tener que seleccionar o indicar el caracter. en javascript tienes dos tipos de words boundaries, \b y \B.
Código:
":3= (:3) height:30em; :3 :3".replace(/\B:3\b/g, "--");
// "--= (--) height:30em; -- --"
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 15/02/2012, 16:18
dalfeju
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Reemplazar palabras en un cadena

Gracias!!!!!!!

Etiquetas: palabras, reemplazar, cadenas
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 04:12.