【问题标题】:preg_match(): Compilation failed: invalid range in character classpreg_match():编译失败:字符类中的范围无效
【发布时间】:2019-03-03 19:58:49
【问题描述】:

我是 laravel 和 vuejs 的初学者,当我尝试刷新页面时收到这样的错误消息,这是我来自网络文件的代码:

Route::get('{path}',"HomeController@index")->where('path','(-a-z0-9_\s)');

有人有想法吗?

【问题讨论】:

标签: laravel vue.js


【解决方案1】:

看你的正则表达式,即使它编译了你也可能找不到任何匹配它的 URI,所以你会得到 Laravel No Route 异常。

您可能应该使用括号[] 来设置字符范围并添加+ 以多次匹配该范围以生成单词或短语。使用这个正则表达式:

[-a-z0-9_\s]+

路线代码:

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

或者在括号内使用括号:

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

下次使用 https://regex101.com/ 使用正则表达式验证您的字符串

【讨论】:

    【解决方案2】:

    你只需要像这样改变你的代码

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

    【讨论】:

    • 非常感谢它现在可以正常工作,当我刷新时我确实收到任何错误
    猜你喜欢
    • 2020-02-18
    • 1970-01-01
    • 2014-11-30
    • 2020-01-28
    • 2020-06-08
    • 2020-03-20
    • 2019-09-19
    • 2014-11-15
    • 2014-11-24
    相关资源
    最近更新 更多