Foros del Web » Programación web » Javascript »

Reemplazar palabra exacta

Estas en el tema de Reemplazar palabra exacta en el foro de Javascript en Foros del Web. ¿Cómo podría reemplazar solo las palabras que coincidan exactamente? Es decir que si yo quiero reemplazar la palabra "árbol" solo se reemplace esa palabra y ...
  #1 (permalink)  
Antiguo 10/09/2010, 20:37
Avatar de zant95  
Fecha de Ingreso: julio-2010
Mensajes: 104
Antigüedad: 4 años, 5 meses
Puntos: 1
Pregunta Reemplazar palabra exacta

¿Cómo podría reemplazar solo las palabras que coincidan exactamente?

Es decir que si yo quiero reemplazar la palabra "árbol" solo se reemplace esa palabra y no otras que empiezan igual como "árboles".

También me vendría bien diferenciar mayúsculas y minúsculas a la hora de hacerlo.

Saludos.
  #2 (permalink)  
Antiguo 10/09/2010, 21:07
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 6 años, 1 mes
Puntos: 66
Respuesta: Reemplazar palabra exacta

aca te doy una solucion usando expresiones regulares, si no sabes sobre eso puedes buscar bastantes ejemplos y tutoriales en google.

Código Javascript:
Ver original
  1. var string = 'el arbol es amarillo, los arboles son azules';
  2. var regexp = /^arbol$/g;
  3. alert(string.replace(regexp,'sol'))
  #3 (permalink)  
Antiguo 10/09/2010, 21:12
Avatar de GAST0N  
Fecha de Ingreso: agosto-2010
Ubicación: Buenos Aires
Mensajes: 680
Antigüedad: 4 años, 4 meses
Puntos: 64
De acuerdo Respuesta: Reemplazar palabra exacta

Cita:
Iniciado por zant95 Ver Mensaje
¿Cómo podría reemplazar solo las palabras que coincidan exactamente?

Es decir que si yo quiero reemplazar la palabra "árbol" solo se reemplace esa palabra y no otras que empiezan igual como "árboles".

También me vendría bien diferenciar mayúsculas y minúsculas a la hora de hacerlo.

Saludos.
tra solucion podria ser algo asi:

Código PHP:
<script type="text/javascript"
var 
ent = ["malo""mal""feo"]; 
var 
sal = ["bueno""bien""bonito"]; 
/*puedes configurar el script para que  
reemplace el numero de palabras que quieras. 
puse estas dos palabras de ejemplo: malo y mal. 
Si la palabra "mal" estubiera en un lugar anterior a "malo" 
el resultado final seria:  
Me siento bien, el dia esta bonito, y mi amigo es bieno  
por eso palabras que se pudieran parecer trata de  
poner las mas largas al inicio 
*/ 

cadena "Me siento mal, el dia esta feo, y mi amigo es malo"
document.write(cadena); 
for(
c=0;c<ent.length;c++){ 
for(
b=0;cadena.indexOf(ent[c])>=0;b++){ 
cadena cadena.replace(ent[c],sal[c]) 
            } 
        } 
document.write('<br/>'); 
document.write(cadena); 
//Ahora cadena tomara el valor de: 
//Me siento bien, el dia esta bonito, y mi amigo es bueno 
</script> 
  #4 (permalink)  
Antiguo 10/09/2010, 22:32
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 6 años, 1 mes
Puntos: 66
Respuesta: Reemplazar palabra exacta

me equivoque aca.

Código Javascript:
Ver original
  1. var regexp = /^arbol$/g;

asi solo tomaria ona cadena que sea igual a "arbol" y no es lo que buscas. podrias intentar usando este.

Código Javascript:
Ver original
  1. var regexp = /arbol(?=\s)/g;

asi reemplazarias cualquier palabra que termine en arbol, igual no seria completamente lo que buscas pero no se me ocurrio alguna forma de que valide la palabra completa, si se me ocurre te aviso.
  #5 (permalink)  
Antiguo 10/09/2010, 23:20
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 7.949
Antigüedad: 5 años, 7 meses
Puntos: 1439
Respuesta: Reemplazar palabra exacta

la expresion regular mas exacta vendria siendo con boundary el cual se expresa con \b. no se como explicar el boundary porque rara vez lo utilizo. en terminos basico representa la posicion entre una palabra y cualquier cosa que no sea un caracter alfanumerico. o dicho de otra forma, cualquier caracter que no corresponda a la clase word (\w)
Código:
var reg = /\barbol\b/g;
reg.test("arbol"); // devuelve true a pesar de no tener ningun caracter antes ni despues;
reg.test("arboles"); // devuelve false, luego de arbol no contiene un caracter de la clase \W;
reg.test("...arbol..."); // devuelve true, el punto no es parte de la clase \w;
reg.test("un _arbol de navidad"); // devuelve false, el guion bajo es parte de la clase \w;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 11/09/2010, 08:23
Avatar de zant95  
Fecha de Ingreso: julio-2010
Mensajes: 104
Antigüedad: 4 años, 5 meses
Puntos: 1
Respuesta: Reemplazar palabra exacta

Muchas gracias a todos, he aprendido bastante con vuestras respuestas.

Saludos.
  #7 (permalink)  
Antiguo 11/09/2010, 08:39
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.672
Antigüedad: 8 años
Puntos: 125
Respuesta: Reemplazar palabra exacta

Hola

Como anotación boundary lo que hace es marcar el limite de una palabra o cadena, tanto por delante de la palabra como por detrás. Dicho de otra manera, delante o después de la palabra, ha de haber como mínimo un espacio en blanco

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: palabra, reemplazar
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 01:41.
SEO by vBSEO 3.3.2