假设我有一个包含值的对象:
const pathParams = { schoolId :'12', classroomId: 'j3'}
and I have a path: school/:schoolId/classroom/:classroomId
我想从路径中提取:'schoolId' 和 'classroomId',以便我以后可以将它们替换为 pathParams 对象中的相应值。我不想从 pathParam 对象键进行迭代,而是想反过来,检查路径需要哪些键,然后检查它们在对象中的值。
我目前有这个:
function addPathParams(path, paramsMap) {
const pathParamsRegex = /(:[a-zA-Z]+)/g;
const params = path.match(pathParamsRegex); // eg. school/:schoolId/classroom/:classroomId -> [':schoolId', ':classroomId']
console.log('--params--', params)
let url = path;
params.forEach((param) => {
const paramKey = param.substring(1); // remove ':'
url = addPathParam(url, param, paramsMap[paramKey]);
});
return url;
}
function addPathParam(path, param, value) {
return path.replace(`${param}`, value);
}
这对您来说是否足够健壮?还有什么我应该考虑的情况吗?
结果: