您好我正在尝试让我的正则表达式在expressJS中运行。 如果我进入/ se / home / helloworld,它将始终触发第一个“Home”而不是“Test”。怎么解决这个问题?
很明显它必须是这条树的路径。
/se/home/:user
/se/home/:user/:notes
/se/home/:user/:notes/:someting
这是我迄今为止所管理的......
app.get(new RegExp("^(\/(se|en))?\/home\/"), function(req, res, next) {
console.log("Home");
res.render('index', { title: 'Express' });
});
app.get(new RegExp("^(\/(se|en))?\/home\/([^/]+)"), function(req, res, next) {
console.log("Test");
console.log(req.params);
res.render('index', { title: 'Express test' });
});
答案 0 :(得分:1)
您需要在第一个正则表达式中使用锚点,以确保RegExp("^(/(se|en))?/home/$")
之后没有其他内容:
/^(\/(se|en))?\/home\/$/
或者,使用字符串文字:
<line stroke='green' x1='0' y1='50%' x2='100%' y2='25%'>
否则,你会得到一个匹配。
请参阅demo