Performance regexp multiple space

Test different ways to do 30 different tasks.

by some

HTML

<div id='inputText'>


Lorem   ipsum dolor sit amet, consectetur adipiscing elit. Integer in neque non      felis tristique interdum ac             eget lorem. Mauris ultrices risus quis libero facilisis ac faucibus ipsum gravida. Mauris sapien mi, vestibulum eget aliquet quis, porta ut massa. Integer in nisl justo, non auctor lorem. Suspendisse a ipsum quam. Morbi tincidunt velit justo. Nullam vel dictum     mauris.

Fusce vel lacus quam. Vivamus a magna lorem. Maecenas eget tincidunt lacus. Integer hendrerit, arcu fermentum iaculis scelerisque, mi nunc semper mauris, id condimentum ligula ligula vel arcu. Nulla in mi a ipsum convallis varius in vel augue. Pellentesque eleifend cursus lacus ac faucibus. Pellentesque in mauris euismod mauris consectetur faucibus. Suspendisse nibh odio, semper      at semper sit amet, ultrices ac eros. Fusce fringilla placerat est, quis iaculis augue consequat ac. Nulla a nunc in turpis feugiat blandit sit amet eu diam. Nam molestie augue sit amet velit pulvinar in tincidunt massa adipiscing. Donec consectetur velit neque, sit amet tincidunt risus. Curabitur placerat ullamcorper   leo a ullamcorper.

Mauris varius laoreet ante, ut elementum est bibendum nec. Fusce felis mauris, pulvinar at viverra sed, consequat at metus. Donec ac tellus sed enim vulputate faucibus. In lobortis lorem ut sem facilisis a hendrerit lacus cursus. Vestibulum nulla mauris, mattis non imperdiet eu, venenatis id quam. Nulla facilisi. Nullam nec nulla vel libero commodo feugiat eu at enim. Nam scelerisque eros vel massa malesuada dapibus. In hac habitasse platea dictumst. Quisque nisi massa, molestie non dapibus et, feugiat sit amet velit.

Donec ut neque id quam pulvinar aliquam. Ut eget lacus orci, non tristique enim. Etiam a erat magna. Aliquam eget congue lacus. Nam nunc dui, dapibus a aliquet vitae, pretium in tellus. Morbi a velit felis, et ultrices elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer ornare hendrerit dolor. Cras...

CSS

body{font-family:monospace;}
.fail {background:#faa; color:#000;}
.pass {background:#afa; color:#000;}

JavaScript

"use strict";

var text= (new Array(1000))
    .join(document.getElementById('inputText').innerHTML);

document.body.innerHTML='';

var ROUNDS = 2; // How many rounds the test should be run.
var uiBrowser= typeof navigator !== 'undefined';

function detectTimeResolution() {
  var ta = [+new Date()], tn, td=[];
  while (ta.length < 10) {
    do {
      tn = + new Date();
    } while(tn === ta[ta.length-1]);
    ta.push(tn);
  }

  var sum =0;

  for (var idx = 1; idx< ta.length; ++idx) {
    sum += ta[idx]- ta[idx-1];
  }
  return sum / (ta.length-1);
}

var resolution = detectTimeResolution();
console.log('Time resolution: ', resolution, resolution !==1 ? ' WARNING!!!':'');


// Array of tests
// ["nameOfTest",function test(){}]
var tests=[
    /*
  [
    "overhead",
    function() {
      var idx=ROUNDS, temp='';
      while(idx--) {
          temp += text;
      }
      return temp.length;
    }
  ],*/
  [
    "single space",
    function() {
      var idx=ROUNDS, temp='';
      while(idx--) {
          temp += text.replace(/ +/,' ');
      }
      return temp.length;
    }
  ],
  [
    "multiple space",
    function() {
      var idx=ROUNDS, temp='';
      while(idx--) {
          temp += text.replace(/  +/,' ');
      }
      return temp.length;
    }
  ],
  [
      "multiple space {}",
    function() {
      var idx=ROUNDS, temp='';
      while(idx--) {
          temp += text.replace(/ {2,}/,' ');
      }
      return temp.length;
    }
  ],
  [
    "range single space",
    function() {
      var idx=ROUNDS, temp='';
      while(idx--) {
          temp += text.replace(/[ ]+/,' ');
      }
      return temp.length;
    }
  ],
  [
    "single white space",
    function() {
      var idx=ROUNDS, temp='';
      while(idx--) {
          temp += text.replace(/\s+/,' ');
      }
      return temp.length;
    }
  ],
  [
    "multiple white space",
    function() {
      var idx=ROUNDS, temp='';
      while(idx--) {
          temp += text.replace(/\s\s+/,' ');
     ...