正则路由器网址的正则表达式匹配以/ public /

时间:2016-04-04 10:53:33

标签: regex node.js express url-routing

要求:需要匹配以 / public / 标记开头的所有网址。

我尝试了什么:我尝试使用下面的正则表达式来匹配所有以/ public /

开头的路径

RegEx:/\/public\/.*/

当我在regex101中使用相同的内容时,它能够匹配那些以/ public / token开头的网址

但是当在Express路由器测试器(http://forbeslindesay.github.io/express-route-tester/?_ga=1.180272292.1056934125.1459765156)中尝试相同时它无法正常工作

任何人都可以帮助我知道它不起作用的原因!!

示例代码:

我的期望是所有使用/ public / token声明的网址都应通过此路由

router.route(/\/public\/.*/)
        .get(function(req, res, result){
            // TODO
        });

Exs:

https://localhost:8082/public/styles/styles.css
https://localhost:8082/public/js/rs.css
https://localhost:8082/public/images/qq.png

2 个答案:

答案 0 :(得分:1)

请参阅此note

  

Express Route Tester是测试基本Express路线的便捷工具,但它不支持模式匹配

正则表达式可以使用以下Express语法:

app.get(/\/public\/.*/, function(req, res) { 
   res.send('/\/public\/.*/'); 
});

但是,您似乎可以使用更简单的通配符模式route.route

router.route('/public/*')

*匹配任何0+个字符。

答案 1 :(得分:1)

从我的评论中写下来:

虽然您可以使用正则表达式匹配所有匹配'/public'的网址,但您不需要 - 您只需使用以下内容作为路线:

router.route('/public/*')