sábado, 23 de abril de 2011

Replace All en Javascript

En ocasiones cuando trabajamos con Javascript, es necesario buscar una cadena de texto y sustituirla por otra.

El API de javascript tiene una función, para los objetos de tipo cadena de texto (String) replace, pero ésta solo sustituye la primera ocurrencia que encuentra.

Así, si tenemos el texto "primero;segundo;tercero" (campos separados por ;, típico cuando trabajamos con ficheros en formato CSV), y con javascript queremos sustituir el separador ; por el separador ',', el siguiente código no funcionará:

"primero;segundo;tercero".replace(";",",")

Pues devolverá el siguiente resultado:
"primero,segundo;tercero" (es decir, solo sustituirá la primera ocurrencia).

Podemos conseguir sustituir todas las ocurrencias del texto a cambiar haciendo uso de expresiones regulares, en concreto de la expresión /textoAcambiar/g (el /g le indica al motor de sustitución basado en expresiones regulares que busque todas las ocurrencias).

Si el texto a sustituir está en una variable javascript, el código a emplear sería el siguiente:


var separator = ";";
var re = new RegExp(separator, "g");
var textoNuevo = "primero;segundo;tercero".replace(re, ",");

Limpiar un Wordpress hackeado

 Check list para limpiar instancias de Wordpress que han sido hackeadas, y para prevenir hackeos. Para técnicos de sistemas con acceso SSH a...