复杂的正则表达式路由过滤器通配符Laravel 5.4

时间:2017-03-22 11:32:02

标签: regex routing laravel-5.4

我尝试按照以下方式过滤我的路线:

Route::post('/vote/{bandId}', 'VoteController@vote')->where('bandId', '[0-9]+');

但它允许以下路线:

http://localhost/vote/0

我不想要,因为我通过过滤自动增量字段(大于0)从查询中获取资源。

我试图输入一个高级正则表达式,就像我对preg_match()所做的那样:

Route::post('/voter/{bandId}', 'VoteController@vote')->where('bandId', '[1-9][0-9]*');

让数字介于1和无限之间。

问题

这最后一条路由不起作用,在获取数据库中的资源之前,如何使用复杂的正则表达式来检查通配符的完整性?

1 个答案:

答案 0 :(得分:0)

尝试以下正则表达式:

^[1-9]\d*$

来源: What is the regex for "Any positive integer, excluding 0"