Skip to content

Commit 305299f

Browse files
panstromekposva
andauthored
docs: mention an edge case with mutliple optional params in the docs (#2192)
* docs: mention an edge case with mutliple optional params in the docs See #2190 for more info. * Update packages/docs/guide/essentials/route-matching-syntax.md --------- Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com>
1 parent a495ce0 commit 305299f

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

packages/docs/guide/essentials/route-matching-syntax.md

+7
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,13 @@ const routes = [
114114

115115
Note that `*` technically also marks a parameter as optional but `?` parameters cannot be repeated.
116116

117+
If the route segment contains more than **just an optional parameter**, it won't match a path **without the trailing slash**. For example:
118+
119+
- `/users/:uid?-:name?` won't match `/users`, only `/users/-` or even `/users/-/`
120+
- `/users/:uid(\\d+)?:name? won't match `/users`, only `/users/`, `/users/2`, `/users/2/`, etc
121+
122+
You can play around with the matching syntax [in the playground](https://paths.esm.dev/?p=AAMsIPQg4AoKzidgQFoEXAmw-IEBBRYYOE0SkABTASiz1qgBpgQA1QTsFjAb3h2onsmlAmGIFsCXjXh4AIA.&t=/users/2/#)
123+
117124
## Debugging
118125

119126
If you need to dig how your routes are transformed into a regex to understand why a route isn't being matched or, to report a bug, you can use the [path ranker tool](https://paths.esm.dev/?p=AAMeJSyAwR4UbFDAFxAcAGAIJXMAAA..#). It supports sharing your routes through the URL.

0 commit comments

Comments
 (0)