2013-10-14 77 views
3

我已經從其他堆棧溢出帖子中讀過,您可以使用正則表達式來路由各種URL。我從來沒有真正使用過RegExps,所以我需要一些幫助。我將如何路由所有以/ lobby /後跟十位數字開頭的網址?像這樣正則表達式幫助 - 快速路由網址

app.get("/lobby/0000000000", function (req, res) ... 

謝謝。

回答

8

這裏有一個工作示例:

app.get(/^\/lobby\/[0-9]{10}$/, function(req, res) { 
    // route handler here 
}); 

或者,你可以使用參數檢查:

app.param(function(name, fn){ 
    if (fn instanceof RegExp) { 
    return function(req, res, next, val){ 
     var captures; 
     if (captures = fn.exec(String(val))) { 
     req.params[name] = captures; 
     next(); 
     } else { 
     next('route'); 
     } 
    } 
    } 
}); 

app.param('id', /^[0-9]{10}$/); 
app.get('/lobby/:id', function(req, res){ 
    res.send('user ' + req.params.id); 
}); 
+0

非常感謝!我幾乎在那裏。 – Harangue

5
app.get('/lobby/:id', function(req, res){ 
    console.log(req.params.id); 
    res.end(); 
}); 

app.get('/lobby/((\\d+))', function(req, res){ 
    console.log(req.params[0]); 
    res.end(); 
}); 

,或者如果URL必須準確10位數字:

app.get('/lobby/((\\d+){10})', function(req, res){ 
    console.log(req.params[0]); 
    res.end(); 
});