正则表达式为未知数量的变量,由/在express,route中分隔

时间:2017-01-18 10:29:48

标签: regex node.js express

我有很多这样的链接:

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

1 个答案:

答案 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;
&#13;
&#13;