'Support Regex that has more than one forward slash in domain
I need to support endpoints such as
/myendpoint:
/v1/myendpoint:
/v3/someotherendpoint:
This regex:
const regexPattern = '/[a-zA-Z0-9-]+:';
Only answers to /myendpoint:
How can we do an or operation to support both cases ?
Solution 1:[1]
Just make it something like recursive your existing solution for its multiple instance.
Example: (\/[a-zA-Z0-9-]+)*:
Play: https://regexr.com/6jka3
The character * in a regular expression means "match the preceding character zero or many times"
Solution 2:[2]
If you just need to test if it matches or not, you can just use a repeated pattern, like this:
const tests = ['/a', '/a/b/c', 'nope'];
const pattern = /^(\/[0-9a-z-]+)+$/i;
tests.forEach(str => console.log(str, pattern.test(str)));
If you want to match each part, it gets a lot trickier and uglier, and you'd better off testing if it works then just use split('/') to get the parts.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Shri Hari L |
| Solution 2 | samanime |
