.replace() vs. .split().join() vs .replaceAll()

JavaScript performance comparison

Revision 52 of this test case created

Info

A solution for replacement of strings.

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    var mystring = 'okay.this.is.a.string';
    var reg = new RegExp(".","gm");
   
    window.replaceAll = function( _str, token, newToken, ignoreCase ) {
        var _token;
        var str = _str;
        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 _str.split( token ).join( newToken );
            }
   
        }
    return str;
    }
};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
replaceAll
result = replaceAll(mystring, '.', ' ');
pending…
.replace(new RegExp(".","gm")," ")
result = mystring.replace(reg," ");
pending…
.split('.').join(' ')
result = mystring.split('.').join(' ');
pending…
replaceAll
result = replaceAll(mystring, '.', ' ');
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment