The goal was to catch expressions going to an API endpoint that looked like:
The regex I had was working fine in regex101.com’s simulator:
But running under node.js, it wouldn’t work – it would catch a single digit, but not any subsequent digits.
Spent a while trying different things – mostly assuming I was doing something boneheaded due to my lack of familiarity with node.js. A colleague verified the same thing and also wasn’t sure.
I then realised it worked fine if I replaced the \d with [0-9]. I thought this was weird – the MDN documentation says:
|Matches any digit (Arabic numeral). Equivalent to |
… which made me assume they were the same thing.
After much websearching & the usual difficulty in finding meaningful results with search terms like “\d”, in desperation, I thought I’d ask ChatGPT, and got the following result:
The fourth point seems to be the case – the \d is also matching the comma.
I’m sure this is documented somewhere (otherwise how else would ChatGPT know about it?!) but I couldn’t find it referenced in any of the stuff that came up through common search terms.