Php Laravel正则表达式验证不起作用
我想将用户名定义为4个字母+4个数字如“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',
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',
];
}
}