0

我们可以在路线图中使用正则表达式吗?我正在创建一个简单的文件浏览器。我在我的中设置了这条路线/config/routes.js

map.all('/assets/:folder.:format?', 'assets#index');

但是文件夹参数可能是(例如)Images/Logos,所以我很感兴趣是否可以使用正则表达式。

在我的 ROR 项目中,我能够借助路由器的:contrains参数解决类似的问题:

match 'applications/:store/:platform/:identifier/:filename' => 'assets#direct_download',
    :constraints => {
      :store => /[\w.-]+/,
      :platform => /[\w.-]+/,
      :identifier => /[\w.-]+/,
      :filename => /.+/
    }

我找不到任何例子。因此,如果有人能为我澄清这一点,我将不胜感激。

4

1 回答 1

0

您可以使用以下语法:

map.all(new RegExp('^\/assets\/(.*)$'), 'assets#index');

然后使用其索引捕获参数(从0- 整个字符串被忽略,不像preg_match或类似的函数):

// app/controllers/assets_controller.js
console.log(params[0]);
于 2013-01-23T15:34:56.870 回答