Estoy tratando de reemplazar varios parámetros usando la función de reemplazo angular, pero el problema es que la función detectó el primer parámetro.
por ejemplo: tengo esta ruta admin/management/{type}/card/{id} , el resultado de la función route.replace admin/management/waiting/%7Bid%7D funciona bien con el primer parámetro.
/** * @param route * @param obj * @returns */ getFormattedRouter(route: String, obj: any) { console.log(route);//admin/management/{type}/card/{id} return route.replace(/{([a-zA-Z_]+?)}/, function (match, capture) { console.log(match);//{type} console.log(capture);//waiting //detected the first one then stops return obj[capture]; //admin/management/waiting/%7Bid%7D }); }¿Cómo puedo detectar todos los parámetros en una ruta?
Su expresión regular no parece estar capturando todas las coincidencias, puede probar esto en su lugar /({\w*})/g . Tenga en cuenta también la g al final que indica el hecho de que desea encontrar todas las coincidencias, no detenerse después de la primera. Consulte este enlace para obtener más información.