Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Param containing a period #58

Closed
cleercode opened this issue Jun 30, 2014 · 7 comments · May be fixed by hixio-mh/react-router#4
Closed

Param containing a period #58

cleercode opened this issue Jun 30, 2014 · 7 comments · May be fixed by hixio-mh/react-router#4

Comments

@cleercode
Copy link
Contributor

I'd like to have a match based on a param that contains a period, instead of using the period as a separator and therefore considering it as two separate params. Possible?

@ryanflorence
Copy link
Member

Seems like we should allow any valid uri between forward slashes.

Sent from my iPhone

On Jun 29, 2014, at 6:45 PM, Chris Lee notifications@github.com wrote:

I'd like to have a match based on a param that contains a period, instead of using the period as a separator and therefore considering it as two separate params. Possible?


Reply to this email directly or view it on GitHub.

@cleercode
Copy link
Contributor Author

Here's an example. If I have a route set up like

<Route name="thing" path=":param" handler={thing} />

and then go to

localhost:3000/#foo.bar (Detail: I'm using hash-based routes.)

I get a warning:

Warning: No route matches path "foo.bar". Make sure you have <Route path="foo.bar"> somewhere in your routes

but if I change the route to

<Route name="thing" path=":param1.:param2" handler={thing} />

then the route gets matched and I get foo as param1 and bar as param2, but I just one one param equal to foo.bar.

@mjackson
Copy link
Member

Currently, :paramName-style placeholders match everything up to a ., /, ?, or #. The idea was that you might want to have a pattern like /files/:filename.:ext and you could get the filename and ext in two separate params. However, of those 4 chars, I'd agree that . feels the most out of place. It's definitely significant in file paths, but a little less so in URLs.

Ultimately this is just a matter of preference. I'd be ok to switch the behavior if everyone wants to.

@cleercode
Copy link
Contributor Author

Hm, I can see the reason for the current behavior. It's pretty inconvenient for what I'm doing, though, since I'm checking strings in the params that just happen to contain a period. I think I'll fork for my own use, at least.

@mjackson
Copy link
Member

@cleercode It's literally just removing the . char from that RegExp.

@rpflorence What's your feeling?

@ryanflorence
Copy link
Member

This is the second time it's come up, and I anticipate it'll be problem when we bring the router in for a file browser UI we're working on right now.

I think . makes more sense as a character than delimiter.

Sent from my iPhone

On Jun 30, 2014, at 12:00 AM, Michael Jackson notifications@github.com wrote:

@cleercode It's literally just removing the . char from that RegExp.

@rpflorence What's your feeling?


Reply to this email directly or view it on GitHub.

@mjackson
Copy link
Member

@rpflorence Yeah, I agree.

@cleercode You want to make a PR? :)

@mjackson mjackson closed this as completed Jul 3, 2014
@lock lock bot locked as resolved and limited conversation to collaborators Jan 25, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants