preg_match():编译失败:字符类中偏移量 20 处的范围无效

问题描述

如何在 laravel 和 vuejs 中解决,当我尝试刷新页面时收到这样的错误消息,这是我来自网络文件代码

 preg_match(): Compilation Failed: invalid range in character class at offset 20 

这是我的路线: 我使用 laravel 8 PHP 7.4

Route::get('{path}',"HomeController@index")->where( 'path','([A-z\d-\/_.]+)?' );
Route::get('{path}',"HomeController@index")->where('path','[-a-z0-9_\s]+');

解决方法

对于 7.3 及以上版本的 php 使用 \- 而不是 -,所以你的最终代码:

Route::get('{path}',"HomeController@index")->where( 'path','([A\-z\d\-\/_.]+)?' );
Route::get('{path}',"HomeController@index")->where('path','[\-a\-z0\-9_\s]+');