String replace methods
JavaScript performance comparison
Info
Different methods to replace all occurs in a string
Preparation code
<script>
Benchmark.prototype.setup = function() {
var str = (new Array(1000)).join("test 1 2 3 4 5 6 7 8 9 bar !"),
search = "7 8",
regexp = new RegExp(search, "g"),
replace = "+";
function replace_while(str, search, replace) {
while ( str.indexOf(search) > -1 ) {
str = str.replace(search, replace);
}
return str;
}
function replace_substring(str, search, replace) {
var result = "",
index = -1,
len = search.length;
while ( (index = str.indexOf(search)) > -1 ) {
result += str.substring(0, index) + replace;
str = str.substring(index + len);
}
return result;
}
function replace_splitjoin(str, search, replace) {
return str.split(search).join(replace);
}
function replace_long(oldS,newS,fullS) {
var fullS = fullS != null ? fullS.toString() : '',
i = 0;
while (i < fullS.length) {
if (fullS.substring && fullS.substring(i,i+oldS.length) == oldS) {
fullS = fullS.substring(0,i)+newS+fullS.substring(i+oldS.length,fullS.length);
i += newS.length;
} else {
i++;
}
}
return fullS;
}
};
</script>
Test runner
Warning! For accurate results, please disable Firebug before running the tests. (Why?)
Java applet disabled.
| Test | Ops/sec | |
|---|---|---|
regexp replace |
|
pending… |
replace_while |
|
pending… |
replace_substring |
|
pending… |
replace_splitjoin |
|
pending… |
replace_long |
|
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:
- Revision 1: published by 1x0
- Revision 2: published by Kevin Reed
0 comments