`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?
Aceptado
Para utilizarlo $
en la cadena resultante, utilice $$
as que $
tiene un significado especial en las expresiones regulares de JavaScript y replace
el método de cadena: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter
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