Necesito construir un enrutador, que enruta una solicitud REST a un controlador y una acción correctos. Aquí algunos ejemplos:Javascript routing regex
POST /users
GET /users/:uid
GET /users/search&q=lol
GET /users
GET /users/:uid/pictures
GET /users/:uid/pictures/:pid
Es importante tener una sola expresión regular y tan bueno como sea posible ya que el enrutamiento es esencial y hecho en cada petición.
primero tenemos que reemplazar: (hasta el final o hasta la próxima barra inclinada /) en las direcciones URL con una expresión regular, que luego podemos utilizar para validar la URL con la URL de solicitud.
¿Cómo podemos reemplazar estos enrutamientos dinámicos con regex? Al igual que la búsqueda de una cadena que comienza con ":" y termina con "/", final de cadena o "&".
Esto es lo que he intentado:
var fixedUrl = new RegExp(url.replace(/\\\:[a-zA-Z0-9\_\-]+/g, '([a-zA-Z0-0\-\_]+)'));
Por alguna razón no funciona. ¿Cómo podría implementar una expresión regular que reemplace: id con una expresión regular, o simplemente ignorarlos al comparar con la url de solicitud real?
Gracias por la ayuda
Creo que falta el subrayado (_) en '([\\ w -] +)'? –