Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Chrome 134
Mac OS X 10.15.7
Desktop
14 days ago
Test name Executions per second
TestRegex validation - Valid input 57875340.0 Ops/sec
Regex validation - Invalid input 75816416.0 Ops/sec
Try-catch validation - Valid input 27872944.0 Ops/sec
Try-catch validation - Invalid input 373192.4 Ops/sec
Script Preparation code:
x
 
// Test description: Comparing regex validation vs try-catch with BigInt for numeric string validation
// Setup
const validTokenId = "12345678901234567890"; // Valid numeric string
const invalidTokenId = "123abc456"; // Invalid numeric string containing letters
// Test function for regex validation
function validateWithRegex(tokenId) {
    return /^\d+$/.test(tokenId);
}
// Test function for try-catch validation
function validateWithTryCatch(tokenId) {
    try {
        BigInt(tokenId);
        return true;
    } catch {
        return false;
    }
}
      
      // Benchmark suite
suite('String Numeric Validation', function() {
    // Regex with valid input
    benchmark('Regex validation - Valid input', function() {
        return validateWithRegex(validTokenId);
    });
    // Regex with invalid input
    benchmark('Regex validation - Invalid input', function() {
        return validateWithRegex(invalidTokenId);
    });
    // Try-catch with valid input
    benchmark('Try-catch validation - Valid input', function() {
        return validateWithTryCatch(validTokenId);
    });
    // Try-catch with invalid input
    benchmark('Try-catch validation - Invalid input', function() {
        return validateWithTryCatch(invalidTokenId);
    });
});
Tests:
  • TestRegex validation - Valid input

     
    validateWithRegex(validTokenId)
  • Regex validation - Invalid input

     
    validateWithRegex(invalidTokenId)
  • Try-catch validation - Valid input

     
     validateWithTryCatch(validTokenId)
  • Try-catch validation - Invalid input

     
    validateWithTryCatch(invalidTokenId)