De acuerdo con la String.prototype.replace()
page on MDN, debería ser capaz de reemplazar fácilmente varios patrones sólo mediante el uso¿Por qué el javascript no reemplaza el indicador global funciona en Chrome o IE, y cómo puedo solucionarlo?
str.replace('what to replace', 'replace with', 'flags')
y el establecimiento de las banderas para 'g'
.
Funciona perfecto en Firefox 3.6. Pero en Chrome e IE8, solo reemplaza al primer 'what to replace'
.
que puede utilizar la sintaxis
str.replace(/what to replace/gi, 'replace with')
. Pero estoy sacando el 'what to replace'
de una matriz, lo que hace que sea difícil agregar los indicadores en esa sintaxis.
Aquí está el código que estoy tratando de usar. ¿Cómo lo modifico para que funcione tanto en Chrome como en Firefox?
function generateQuestion()
{
//alert('variable length: '+variableList.length);
for(i=0;i<variableList.length;i++)
{
variable = variableList[i];
rep = replacementList[i];
flags = "gi";
questionText = questionText.replace(variable, rep, flags);
}
}
¿Y por qué tengo que molestarme en modificarlo? ¿No debería Chrome evaluar el JavaScript como se describe en el enlace?
¡Gracias! Sabía que tenía que ser algo simple como eso. Solo necesitaba otra persona para ver el problema.: D –
Pero entonces tienes un problema que las cadenas para RegExp tienen que ser escapadas, lo cual es bastante propenso a errores. – Mitar
@Mitar Es desafortunado, pero no hay forma de evitarlo. Solo tienes que tener cuidado con tu escape –