Necesito admitir puntos finales como
/myendpoint: /v1/myendpoint: /v3/someotherendpoint:Esta expresión regular:
const regexPattern = '/[a-zA-Z0-9-]+:'; Solo responde a /myendpoint:
¿Cómo podemos hacer una operación or para apoyar ambos casos?
Si solo necesita probar si coincide o no, puede usar un patrón repetido, como este:
const tests = ['/a', '/a/b/c', 'nope']; const pattern = /^(\/[0-9a-z-]+)+$/i; tests.forEach(str => console.log(str, pattern.test(str))); Si desea hacer coincidir cada parte, se vuelve mucho más complicado y feo, y es mejor que pruebe si funciona y luego use split('/') para obtener las partes.
Simplemente haga que sea algo así como recursivo su solución existente para su instancia múltiple.
Ejemplo: (\/[a-zA-Z0-9-]+)*:
Reproducir: https://regexr.com/6jka3
El carácter * en una expresión regular significa " coincide con el carácter anterior cero o muchas veces "