380 votos

Cómo reemplazar todos los puntos en una cadena utilizando JavaScript

Quiero reemplazar todas las ocurrencias de un punto ( . ) en una cadena de JavaScript

Por ejemplo, yo tengo:

 var mystring = 'okay.this.is.a.string';
 

Quiero llegar: okay this is a string .

Hasta ahora he intentado:

 mystring.replace(/./g,' ')
 

pero esto termina con toda la cadena reemplazado a los espacios.

¿Alguna idea de cómo resolver esto?

677voto

aefxx Puntos 10941

Casi ... usted necesita escapar el . , ya que este es un "caracter especial" en una expresión regular.

mystring.replace(/\./g,' ')

296voto

Umesh Patil Puntos 5108

Una solución más que es fácil de entender :)

 var newstring = mystring.split('.').join(' ');
 

52voto

Fagner Brack Puntos 498
 /**
 * ReplaceAll by Fagner Brack (MIT Licensed)
 * Replaces all occurrences of a substring in a string
 */
String.prototype.replaceAll = function( token, newToken, ignoreCase ) {
    var _token;
    var str = this + "";
    var i = -1;

    if ( typeof token === "string" ) {

        if ( ignoreCase ) {

            _token = token.toLowerCase();

            while( (
                i = str.toLowerCase().indexOf(
                    token, i >= 0 ? i + newToken.length : 0
                ) ) !== -1
            ) {
                str = str.substring( 0, i ) +
                    newToken +
                    str.substring( i + token.length );
            }

        } else {
            return this.split( token ).join( newToken );
        }

    }
return str;
};

alert('okay.this.is.a.string'.replaceAll('.', ' '));
 

Más rápido que el uso de expresiones regulares ...

EDIT: Tal vez en el momento que hice este código No solía jsperf. Pero al final, ese debate es totalmente inútil, la diferencia de rendimiento no vale la legibilidad del código en el mundo real, así que mi respuesta sigue siendo válida, incluso si el rendimiento se diferencia del enfoque de expresiones regulares.

22voto

user838204 Puntos 559
str.replace(new RegExp(".","gm")," ")

13voto

Victor Puntos 695

Para este escenario simple, i también recomiendo utilizar los métodos que vienen a construir-en en javascript.

Usted podría intentar esto:

 "okay.this.is.a.string".split(".").join("")
 

Saludos

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X