jueves, 18 de octubre de 2012

43 - replace en Javascript



Interesante: Vídeo Tutorial de Javascript, aprende a programar Javascript desde cero.

Métodos de String: replace ( expreg, nueva )

A vueltas con las expresiones regulares, difíciles pero potentes. Con este método todas las cadenas que concuerden con la expreg del primer argumento son reemplazadas por la cadena especificada en el segundo argumento, nueva, que puede contener elementos del patrón mediante los símbolos $1 a $9. El resultado devuelto es la cadena con las sustituciones realizadas. Por ejemplo vamos a cambiar palabra por frase en la frase...

"Cada palabra dicha es una palabra falsa"

var linea = new String();
linea="Cada palabra dicha es una palabra falsa";
linea = linea.replace(/palabra/g, "frase");
document.write(linea);


Si pruebas el ejemplo obtendrás lo siguiente:

"Cada frase dicha es una frase falsa"

En esta ocasión se ha usado un patrón con el modificador g de global por lo que cambia todas las coincidencias, si se omite sólo se cambia la primera. En la cadena nueva pueden usarse elementos del patrón, por ejemplo cambiemos las negritas a cursivas en la frase:

var patron = /(<b>)([^<]+)(<\/b>)/g;
var frase = "Cada <b>negrita</b> pasa a <b>itálica</b>";
document.write(frase+"<br>");
newstr = str.replace(patron, "<i>$2</i>");
document.write(frase);


veras la frase antes y después del cambio:

Cada negrita pasa a itálica
Cada negrita pasa a itálica

El $2 es un índice referido a los paréntesis del patrón, así $1 indica lo contenido en el primer paréntesis (<b>) mientras que $3 es <\b>, el tercer paréntesis.