regex vs for loop (v18)

Revision 18 of this benchmark created on


Preparation HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script>
  function isVowelRegEx(char) {
   if (char.length === 1) {
    return /[aeiou]/.test(char);
   }
  }
  
  var vowels = new Array('a', 'e', 'i', 'o', 'u');
  
  function isVowel(char) {
   if (char.length === 1) {
    var len = vowels.length;
    for (var i = 0; i < len; i++) {
     if (vowels[i] === char) {
      return true;
     }
    }
    return false;
   }
  }
  
  var vowelsindex = "aeiou";
  
  function isVowelindex(char) {
   if (char.length === 1) {
    return vowelsindex.indexOf(char) >= 0 ? true : false;
   }
  }

var vowels = ['a', 'e',  'i',  'o',  'u'];
function vowelIndexOfArray(char) {

	if (char.length === 1) {
		if (vowels.indexOf(char) > 0) {
			return true;
		}
	}

	return false;
}

var vowelProps = {'a':true,'e':true,'i':true,'o':true,'u':true};

function vowelProperty(char) {
  return vowelProps[char] || false;
}

function vowelSwitch(char) {
  switch (char) {
    case 'a':
      return true;
    case 'e':
      return true;
    case 'i':
      return true;
    case 'o':
      return true;
    case 'u':
      return true;
    default:
      return false;
  }
}


  function isVowelChars(char) {
    return char === 'a' || char === 'e' || char === 'i' || char === 'o' || char === 'u' || false;
  }    


    function isVowelUnderscore(char){
        return _.contains(vowels, char);
    }
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
regex
isVowelRegEx('a');
isVowelRegEx('v');
ready
for loop bestcase
isVowel('a');
isVowel('v');
ready
index
isVowelindex('a');
isVowelindex('v');
ready
VowelIndexOfArray
vowelIndexOfArray('a');
vowelIndexOfArray('v');
ready
for loop worstcase
isVowel('u');
isVowel('v');
ready
VowelProp
vowelProperty('u');
vowelProperty('v');
ready
VowelSwitch
vowelSwitch('u');
vowelSwitch('v');
ready
isVowelChars
isVowelChars('u');
isVowelChars('v');
ready
isVowelUnderscore
isVowelUnderscore('u');
isVowelUnderscore('v');
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.