JSFiddle - React, Tailwind, and code Playground
JavaScript
var iters = 10000000;
var withRegex = function( string ) {
return string.replace( /[^a-z0-9]/ig, '' );
};
var withRegex2 = function( string ) {
return string.replace( /[^a-z0-9]+/ig, '' );
};
var withPureJS = function( string ) {
var isChar = function( char ) {
c = char.charCodeAt( 0 );
return ( c > 47 && c < 58 ) || ( c > 64 && c < 91 ) || ( c > 96 && c < 123 );
};
var result = "";
var length = string.length;
for ( var pos = 0; pos < length; pos++ ) {
if ( isChar( string[pos] ) ) {
result += string[pos];
};
};
return result;
};
function test( func, string, iters ) {
var tStart = Date.now();
var etalon = withRegex( string );
for ( var i=0; i<iters; i++ ) {
if ( func( string ) != etalon ) {
console.log( "error" );
break;
};
};
var tEnd = Date.now();
console.log( "test "+counter, tEnd - tStart );
counter++;
};
console.log( "Test started" );
var counter = 1;
test( withRegex, "abc0123$%^&*", iters );
test( withRegex2, "abc0123$%^&*", iters );
test( withPureJS, "abc0123$%^&*", iters );