A diferencia de la biblioteca de clases C#/.NET (y la mayoría de los demás lenguajes sensibles), cuando pasa un String
como argumento de cadena por coincidencia al método string.replace
, no reemplaza una cadena. Convierte la cadena a RegExp
y realiza una sustitución de expresiones regulares. Como explica Gumbo, una sustitución de expresiones regulares requiere la bandera lobal g
, que no está activada por defecto, para reemplazar todas las coincidencias de una vez.
Si quieres una auténtica basada en cadena de reemplazar - por ejemplo, porque la secuencia de correspondencia es dinámico y puede contener caracteres que tienen un significado especial en regexen - el lenguaje Javascript para lo que vale:
var id= 'c_'+date.split('/').join('');
título editado para ser un poco más descriptivo, pero es tu pregunta, por lo que eres el jefe. : D –
Posible duplicado de [Reemplazar todas las apariciones de una cadena en JavaScript] (http://stackoverflow.com/questions/1144783/replacing-all-occurrences-of-a-string-in-javascript) – chharvey
Esto es tan doloroso e innecesario. Me pregunto qué razón hubo para implementar 'reemplazar' como este. Incluso elijo 'str.split (search) .join (replacement)' sobre la expresión regular. –