`string.replace` comportamiento extraño al usar el signo de dólar ($) como reemplazo

Resuelto asked hace 13 años • 3 respuestas

Encontré un error en mi código JavaScript que aislé en un reemplazo de cadena que actúa de una manera que no esperaba. Aquí hay un ejemplo del código:

var text = "as";
text = text.replace(text,"$\'");
console.log(text);

Esto imprime una cadena vacía en la consola. Esperaba que imprimiera $' en la consola. ¿Alguien puede explicar esto?

 avatar Feb 24 '12 07:02
Aceptado

Para utilizarlo $en la cadena resultante, utilice $$as que $tiene un significado especial en las expresiones regulares de JavaScript y replaceel método de cadena: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter

Misha Reyzlin avatar Feb 24 '2012 00:02 Misha Reyzlin

Si no sé qué hay en mi cadena de reemplazo, uso

replaceWith = "might have 2 $ signs $$ $$$ $$$$"
"a b c".replace("b", replaceWith) // unexpected result
"a b c".replace("b", function(){return replaceWith}) // no surprises
Duppy avatar Dec 31 '2015 20:12 Duppy