
js正则提取url中斜杠之间的值
本问题涉及使用javascript正则表达式从url中提取斜杠之间的特定值。
代码:
let pattern = "{note}/:pakid:/corrinsdetail/{corrinsaleid}/{corrinspakid}/{corrinsinsta}/{corrinsvernr}/{verfrom}/{verto}/{name}/:tab:";
let url = "0001668882/41/corrinsdetail/0001023444/41/0020751259/0005/756/756/sap_basis/validitydetails";
// 清洗url
url = url.replace(/(\?|#).*/, "");
// 模式替换
const urlregex = new regexp(pattern.replace(/(\{|:)[\w-]+(\}|:)/g, "[\\w-]+").replace(/\//g, "/"));
// 检验url是否符合模式
if (!urlregex.test(url)) {
throw new error("输入的url不符合pattern");
}
// 分割关键字和值
let keys = pattern.split("/");
let values = url.split("/");
let result = {};
// 匹配关键字和值
keys.foreach((v, i) => {
if (/(\{|:)\w+(\}|:)/.test(v)) {
result[v.replace(/(\{|:|\})/g, "")] = values[i];
}
});
console.log(result);输出:
立即学习“Java免费学习笔记(深入)”;
{
note: "0001668882",
pakid: "41",
corrInsAleid: "0001023444",
corrInsPakId: "41",
corrInsInsta: "0020751259",
corrInsVernr: "0005",
verFrom: "756",
verTo: "756",
name: "SAP_BASIS",
tab: "ValidityDetails"
}










