How to replace all dots in a string using JavaScript

JavascriptStringReplace

Javascript Problem Overview


I want to replace all the occurrences of a dot(.) in a JavaScript string

For example, I have:

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

I want to get: okay this is a string.

So far I tried:

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

but this ends up with all the string replaced to spaces.

Javascript Solutions


Solution 1 - Javascript

You need to escape the . because it has the meaning of "an arbitrary character" in a regular expression.

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

Solution 2 - Javascript

One more solution which is easy to understand :)

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

Solution 3 - Javascript

/**
 * 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('.', ' '));

Faster than using regex...

EDIT:
Maybe at the time I did this code I did not used jsperf. But in the end such discussion is totally pointless, the performance difference is not worth the legibility of the code in the real world, so my answer is still valid, even if the performance differs from the regex approach.

EDIT2:
I have created a lib that allows you to do this using a fluent interface:

replace('.').from('okay.this.is.a.string').with(' ');

See https://github.com/FagnerMartinsBrack/str-replace.

Solution 4 - Javascript

str.replace(new RegExp(".","gm")," ")

Solution 5 - Javascript

For this simple scenario, i would also recommend to use the methods that comes build-in in javascript.

You could try this :

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

Greetings

Solution 6 - Javascript

I add double backslash to the dot to make it work. Cheer.

var st = "okay.this.is.a.string";
var Re = new RegExp("\\.","g");
st = st.replace(Re," ");
alert(st);

Solution 7 - Javascript

This is more concise/readable and should perform better than the one posted by Fagner Brack (toLowerCase not performed in loop):

String.prototype.replaceAll = function(search, replace, ignoreCase) {
  if (ignoreCase) {
    var result = [];
    var _string = this.toLowerCase();
    var _search = search.toLowerCase();
    var start = 0, match, length = _search.length;
    while ((match = _string.indexOf(_search, start)) >= 0) {
      result.push(this.slice(start, match));
      start = match + length;
    }
    result.push(this.slice(start));
  } else {
    result = this.split(search);
  }
  return result.join(replace);
}

Usage:

alert('Bananas And Bran'.replaceAll('An', '(an)'));

Solution 8 - Javascript

replaceAll(search, replaceWith) [MDN]

 ".a.b.c.".replaceAll('.', ' ')
 // result: " a b c "

 // Using RegEx. You MUST use a global RegEx.
 ".a.b.c.".replaceAll(/\./g, ' ')
 // result: " a b c "
    

replaceAll() replaces ALL occurrences of search with replaceWith.

It's actually the same as using replace() [MDN] with a global regex(*), merely replaceAll() is a bit more readable in my view.

(*) Meaning it'll match all occurrences.


Important(!) if you choose regex: > when using a regexp you have to set the global ("g") flag; > otherwise, it will throw a TypeError: "replaceAll must be called with > a global RegExp".

Solution 9 - Javascript

String.prototype.replaceAll = function(character,replaceChar){
	var word = this.valueOf();
	
	while(word.indexOf(character) != -1)
		word = word.replace(character,replaceChar);
	
	return word;
}

Solution 10 - Javascript

Here's another implementation of replaceAll. Hope it helps someone.

    String.prototype.replaceAll = function (stringToFind, stringToReplace) {
        if (stringToFind === stringToReplace) return this;
        var temp = this;
        var index = temp.indexOf(stringToFind);
        while (index != -1) {
            temp = temp.replace(stringToFind, stringToReplace);
            index = temp.indexOf(stringToFind);
        }
        return temp;
    };

Then you can use it:

var myText = "My Name is George";
var newText = myText.replaceAll("George", "Michael");

Solution 11 - Javascript

Example: I want to replace all double Quote (") into single Quote (') Then the code will be like this

var str= "\"Hello\""
var regex = new RegExp('"', 'g');
str = str.replace(regex, '\'');
console.log(str); // 'Hello'

Solution 12 - Javascript

@scripto's made a bit more concise and without prototype:

function strReplaceAll(s, stringToFind, stringToReplace) {
    if (stringToFind === stringToReplace) return s;
    for (let index = s.indexOf(stringToFind); index != -1; index = s.indexOf(stringToFind))
        s = s.replace(stringToFind, stringToReplace);
    return s;
}

Here's how it stacks up: http://jsperf.com/replace-vs-split-join-vs-replaceall/68

Solution 13 - Javascript

String.prototype.replaceAll = function (needle, replacement) {
    return this.replace(new RegExp(needle, 'g'), replacement);
};

Solution 14 - Javascript

mystring.replace(new RegExp('.', "g"), ' ');

Solution 15 - Javascript

Simplest way

> "Mr.".split('.').join("");

..............

Console

enter image description here

Solution 16 - Javascript

you can replace all occurrence of any string/character using RegExp javasscript object.

Here is the code,

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

var patt = new RegExp("\\.");

while(patt.test(mystring)){

  mystring  = mystring .replace(".","");

}

Solution 17 - Javascript

let a = "once there was a king. spread opeator. let. ver. const.";

let data = a.replaceAll(".","");

Answer : data = "once there was a king spread opeator let ver const";

You need to use replaceAll() method on that string.

Solution 18 - Javascript

var mystring = 'okay.this.is.a.string';
var myNewString = escapeHtml(mystring);

function escapeHtml(text) {
if('' !== text) {
    return text.replace(/&/g, "&")
               .replace(/&lt;/g, "<")
               .replace(/&gt;/g, ">")
               .replace(/\./g,' ')
               .replace(/&quot;/g, '"')
               .replace(/&#39/g, "'");
} 

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionOmar AbidView Question on Stackoverflow
Solution 1 - JavascriptaefxxView Answer on Stackoverflow
Solution 2 - JavascriptUmesh PatilView Answer on Stackoverflow
Solution 3 - JavascriptFagner BrackView Answer on Stackoverflow
Solution 4 - JavascriptmacemersView Answer on Stackoverflow
Solution 5 - JavascriptVictorView Answer on Stackoverflow
Solution 6 - JavascriptkittichartView Answer on Stackoverflow
Solution 7 - JavascriptssturView Answer on Stackoverflow
Solution 8 - JavascriptRazView Answer on Stackoverflow
Solution 9 - JavascriptJoelView Answer on Stackoverflow
Solution 10 - JavascriptscriptoView Answer on Stackoverflow
Solution 11 - JavascriptNeel KamalView Answer on Stackoverflow
Solution 12 - JavascriptA TView Answer on Stackoverflow
Solution 13 - JavascriptDanonView Answer on Stackoverflow
Solution 14 - JavascriptIdanView Answer on Stackoverflow
Solution 15 - JavascriptVinod KumarView Answer on Stackoverflow
Solution 16 - JavascriptRakesh ChaudhariView Answer on Stackoverflow
Solution 17 - Javascriptnagender pratap chauhanView Answer on Stackoverflow
Solution 18 - JavascriptNehaView Answer on Stackoverflow