Regex (ported from PHP to Javascript, Node.js) applied on this string:
/users/:uid/posts/:pid
/users/:uid
/messages/:mid
The strings above, contain arguments (after the “:” symbol) untill the next forward slash, I replace these with a string regex. And eventually it should be like this:
/users/([a-zA-Z0-9\-\_]+)/posts/([a-zA-Z0-9\-\_]+)
So all the arguments in the routing, should be replaced with a regular expression string. I use the following code to achieve this:
var fixedRoute = route[url].replace(/\\\:[a-zA-Z0-9\_\-]+/, '([a-zA-Z0-9\-\_]+)');
The output is the same, the strings are not replaced. Can anyone help me with this regex?
Thanks alot
You forgot the capturing group and it’s backreference.
So that would become something like ‘hihi-foobar’.replace(/foo(bar)/i, $1);
would render ‘hihi-bar’.
UPDATE (based on comments above):