| author | Christian Urban <urbanc@in.tum.de> | 
| Thu, 14 Nov 2019 13:50:29 +0000 | |
| changeset 688 | 289d4baafeee | 
| parent 614 | 3ed8ac396863 | 
| child 701 | 81377a3eb717 | 
| permissions | -rw-r--r-- | 
| 614 | 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.py 20 | |
| 12 | // | |
| 13 | // call with timing as: | |
| 14 | // | |
| 15 | // $> time node catastrophic.py 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) |