我正在使用正则表达式进行快速路由,我遇到了障碍。当结果为GET的url时,我有一堆测试可以运行。字符串不以结尾的GET返回文件夹列表和测试链接。
我有一个适用于普通字符串的正则表达式
var noresult = new RegExp(/^(?![\w\/:].*result$)/);
var result = new RegExp(/^[\w\/:].*result$/);
但我不能为我的生活弄清楚如何在快递中实现这些。我目前有:
router.get('/:testPath(^[\w\/:].*result$)', [function (req, res, next) {
// run mocha test
// render page
}
我的测试和
router.get('/:path(?![\w\/:].*result$)', function (req, res) {
// build folder/file structure
// render page
}
但这些都不适用于任何网址。我希望testPath和path req参数位于req.params对象中。
例如,以下三行在字符串时起作用,但在URL传递给表达时不起作用:
/test/path/to/test
/test/path/to/test/
/test/path/to/testfile/result
我见过一些示例,它们都使用和不使用/ ^或$ /来开始或结束快速路由示例中的字符串。我不确定他们是否属于那里。
在快速路线中实施正则表达式的正确方法是什么?
答案 0 :(得分:0)
显然语法是纯正则表达式。谁会知道的!我目前正在使用:
router.get(/[\w\/:]*result$/, [function (req, res, next) {
router.get(/^(?![\w\/\:].*result$)/, function (req, res, next) {
它就像一个魅力。仍然没有想出如何在那里获得变量。但它现在有效。