¿Cómo reemplazo cualquier cadena en jQuery?
Digamos que tengo una cadena "-9o0-9909" y quiero reemplazarla con otra cadena.
Puede usar lo siguiente para reemplazar la primera aparición de una palabra dentro del cuerpo de la página:
var replaced = $("body").html().replace('-9o0-9909','The new string'); $("body").html(replaced); Si desea reemplazar todas las apariciones de una palabra, debe usar regex y declararlo global /g :
var replaced = $("body").html().replace(/-1o9-2202/g,'The ALL new string'); $("body").html(replaced);Si querías una sola línea:
$("body").html($("body").html().replace(/12345-6789/g,'<b>abcde-fghi</b>')); Básicamente, está tomando todo el HTML dentro de las etiquetas <body> de la página en una variable de cadena, usando replace() para buscar y cambiar la primera aparición de la cadena encontrada con una nueva cadena. O si desea buscar y reemplazar todas las apariciones de la cadena, introduzca una pequeña expresión regular en la mezcla.
Vea una demostración aquí : mire la parte superior izquierda de HTML para ver el texto original, el jQuery a continuación y la salida en la parte inferior derecha.
Como otros mencionaron en este hilo, reemplazar todo el cuerpo HTML es una mala idea porque reinserta todo el DOM y potencialmente puede romper cualquier otro javascript que esté actuando sobre esos elementos.
En su lugar, reemplace solo el texto en su página y no los elementos DOM en sí mismos usando el filtro jQuery :
$('body :not(script)').contents().filter(function() { return this.nodeType === 3; }).replaceWith(function() { return this.nodeValue.replace('-9o0-9909','The new string'); });this.nodeType es el tipo de nodo cuyo contenido buscamos reemplazar. nodeType 3 es texto. Vea la lista completa aquí .
...Tengo una cadena "-9o0-9909" y quiero reemplazarla con otra cadena.
El siguiente código hará eso.
var str = '-9o0-9909'; str = 'new string';Bromas aparte, reemplazar nodos de texto no es trivial con JavaScript.
He escrito una publicación sobre esto: Reemplazar texto con JavaScript .