Php Laravel正则表达式验证不起作用

Php Laravel正则表达式验证不起作用,php,regex,laravel,Php,Regex,Laravel,我想将用户名定义为4个字母+4个数字如“abcd1234”。以下是我在Laravel 5中的代码: public function rules() { return [ 'username' => 'required|regex:/^[A-Za-z]{4}\d{4}$/|unique:users', 'email' => 'required|email|unique:users',

我想将用户名定义为4个字母+4个数字如“
abcd1234
”。以下是我在Laravel 5中的代码:

    public function rules()
    {
        return [
            'username' => 'required|regex:/^[A-Za-z]{4}\d{4}$/|unique:users',
            'email' => 'required|email|unique:users',
            'password' => 'required|confirmed|min:8'
        ];
    }
但是,正则表达式验证根本不起作用。如何解决这个问题?谢谢

来自

regex:pattern

验证中的字段必须与给定的正则表达式匹配

注意:使用regex模式时,可能需要指定 数组中的规则,而不是使用管道分隔符,尤其是 正则表达式包含管道字符

所以,你应该这样做

$rules = array('form_field' => array('required', 'regex:foo'));

[a-zA-Z]{4}
表示4个字母
\d{4}
表示4个数字

代码正确。问题是
使用App\Http\Requests\RequestRegisterRequest.php
中缺少code>

RegisterRequest.php
中的语句如下所示:

<?php namespace App\Http\Requests\Auth;

use App\Http\Requests\Request;

class RegisterRequest extends Request {

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'username' => 'required|regex:/^[A-Za-z]{4}\d{4}$/|unique:users',
            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|min:8|confirmed',
        ];
    }

}

@rock321987可能是巧合。我尝试了
'username'=>array('required','regex:/^[A-Za-z]{4}\d{4}$/')
。但它仍然不起作用。谁在问意义呢?字母和数字可以按任何顺序排列吗?
<?php namespace App\Http\Requests\Auth;

use App\Http\Requests\Request;

class RegisterRequest extends Request {

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'username' => 'required|regex:/^[A-Za-z]{4}\d{4}$/|unique:users',
            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|min:8|confirmed',
        ];
    }

}