我有很多这样的链接:
router.use('/foo' , require('./foo'));
router.use('/foo/1' , require('./foo'));
router.use('/foo/2' , require('./foo'));
router.use('/foo/1/1' , require('./foo'));
router.use('/foo/2/3/4/.../n' , require('./foo'));
有没有办法编写匹配的正则表达式并将它们分隔为/
分隔符?像这样:
//for example for /foo/2/3/4/.../n url.
var first_var = req.param[0]; // 2
var last_var = req.param[req.param.length-1]; // n
我已经写了一个匹配。不分开:
router.use('/foo/*' , require('./foo'));
答案 0 :(得分:1)
当您尝试在正则表达式中执行此操作时,此正则表达式将适用于您。如果我错过了一些案例,请告诉我。
([^\/]+)
const regex = /([^\/]+)/g;
const str = `/foo/2/3/4/5/n`;
let m;
m = str.match(regex);
for(var i = 0; i< 5; i++) {
if(i === 0)
continue;
console.log(`Parameter ${i} = ${m[i]}`);
}
&#13;