Quiero reemplazar todas las apariciones de un punto ( .
) en una cadena de JavaScript
Por ejemplo, tengo:
var mystring = 'okay.this.is.a.string';
Quiero llegar: okay this is a string
.
Hasta ahora lo intenté:
mystring.replace(/./g,' ')
pero esto termina con toda la cadena reemplazada por espacios.
javascript
string
replace
Omar Abid
fuente
fuente
Respuestas:
Debe escapar
.
porque tiene el significado de "un carácter arbitrario" en una expresión regular.fuente
g
modificador al final de la expresión. Piense en ello como (g) lobalmente.Una solución más que es fácil de entender :)
fuente
Más rápido que usar expresiones regulares ...
EDITAR:
Quizás en el momento en que hice este código no usé jsperf. Pero al final, tal discusión no tiene sentido, la diferencia de rendimiento no vale la legibilidad del código en el mundo real, por lo que mi respuesta sigue siendo válida, incluso si el rendimiento difiere del enfoque de expresiones regulares.
EDIT2:
he creado una lib que te permite hacer esto usando una interfaz fluida:
Ver https://github.com/FagnerMartinsBrack/str-replace .
fuente
str.toLowerCase()
sacar el ciclo por razones de rendimiento. Además, manipular la cadena que está buscando probablemente sea menos que óptima.fuente
Para este escenario simple, también recomendaría usar los métodos que vienen incorporados en javascript.
Podrías probar esto:
Saludos
fuente
Agrego una barra diagonal inversa doble al punto para que funcione. Animar.
fuente
Esto es más conciso / legible y debería funcionar mejor que el publicado por Fagner Brack (toLowerCase no realizado en bucle):
Uso:
fuente
fuente
replaceAll('&', '&')
? (Es cierto que no es un caso en la pregunta del OP)&
modo de que el bucle nunca se quede sin cosas para reemplazar (y la cadena sigue creciendo). Lo intenté hace un momento y bloqueó mi navegador ...Aquí hay otra implementación de replaceAll. Espero que ayude a alguien.
Entonces puedes usarlo:
var myText = "Mi nombre es George";
var newText = myText.replaceAll ("George", "Michael");
fuente
string.split(stringToFind).join(stringToReplace)
Ejemplo: quiero reemplazar todas las comillas dobles (") en comillas simples (') Entonces el código será así
fuente
@ scripto es un poco más conciso y sin
prototype
:Así es como se acumula: http://jsperf.com/replace-vs-split-join-vs-replaceall/68
fuente
fuente
fuente
Puede reemplazar todas las apariciones de cualquier cadena / carácter utilizando el objeto RegExp javasscript.
Aquí está el código
fuente
fuente
createTextNode