2017-01-18 6 views
0

正規表現、ルート

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

あなたはすべてのルートが './foo' を使用している場合、それらを分離したいとしている理由を私は理解していませんか? – Tom

+0

私はそれらを他のロジック機能で使いたいと思っています。 ./fooについてではありません。 – somename

+0

パス文字列を '/'で分割しても、やりたいことができませんか? – Tom

答えて

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

+0

私は 'router.use'に正規表現が必要でした。あなたはjavascriptでそれをやった。私は明示的にこれを行う方法がないと思うので、BTW。私は+1する。 – somename