如何从url中提取路径参数?

时间:2021-02-11 20:26:46

标签: javascript rest url

假设我有一个包含值的对象:

 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);
}

这对您来说是否足够健壮?还有什么我应该考虑的情况吗?

这是我做过的几个测试: enter image description here

结果:

enter image description here

0 个答案:

没有答案