fork(2) download
  1. process.stdin.resume();
  2. process.stdin.setEncoding('utf8');
  3.  
  4. var iters = 1000000;
  5. var withRegex = function( string ) {
  6. return string.replace( /[^a-z0-9]/ig, '' );
  7. };
  8. var withRegex2 = function( string ) {
  9. return string.replace( /[^a-z0-9]+/ig, '' );
  10. };
  11. var withPureJS = function( string ) {
  12. var result = "";
  13. var length = string.length;
  14. for ( var pos = 0; pos < length; pos++ ) {
  15. c = string.charCodeAt( pos );
  16. if ( ( c > 47 && c < 58 ) || ( c > 64 && c < 91 ) || ( c > 96 && c < 123 ) ) {
  17. result += string[pos];
  18. };
  19. };
  20. return result;
  21. };
  22.  
  23. function test( func, string, iters ) {
  24. var tStart = Date.now();
  25. var etalon = withRegex( string );
  26. for ( var i=0; i<iters; i++ ) {
  27. if ( func( string ) != etalon ) {
  28. console.log( "error" );
  29. break;
  30. };
  31. };
  32. var tEnd = Date.now();
  33. console.log( "test "+counter, tEnd - tStart );
  34. counter++;
  35. };
  36.  
  37. console.log( "Test started" );
  38. var counter = 1;
  39. test( withRegex, "abc0123$%^&*", iters );
  40. test( withRegex2, "abc0123$%^&*", iters );
  41. test( withPureJS, "abc0123$%^&*", iters );
Success #stdin #stdout 1.51s 52112KB
stdin
Standard input is empty
stdout
Test started
test 1 503
test 2 461
test 3 400