progs/catastrophic/catastrophic.js
changeset 741 e66bd5c563eb
parent 701 681c36b2af27
child 745 7dc3643a0cc5
equal deleted inserted replaced
740:923b946347e6 741:e66bd5c563eb
       
     1 
       
     2 
       
     3 
       
     4 // A case of catastrophic backtracking in JavaScript/Node.js
       
     5 //
       
     6 // regex: (a*)*b
       
     7 // strings: aa...
       
     8 //
       
     9 // call with:
       
    10 //
       
    11 //  $> node catastrophic.js 20
       
    12 //
       
    13 // call with timing as:
       
    14 //
       
    15 //  $> time node catastrophic.js 25
       
    16 
       
    17 
       
    18 const args = process.argv[2]
       
    19 
       
    20 var str = 'a'.repeat(args);
       
    21 
       
    22 console.log(str)
       
    23 
       
    24 var re = /^((a)*)*b$/;
       
    25 
       
    26 var res = re.test(str);
       
    27 
       
    28 console.log(res)