我需要密码验证,比如
1 English uppercase characters (A – Z)
2 English lowercase characters (a – z)
3 Base 10 digits (0 – 9)
4 Non-alphanumeric (For example: !, $, #, or %)
5 Unicode characters我已经应用了一些代码,但是我得到的结果是一个错误。我想regex用错了格式。请检查我的代码并纠正我。谢谢
AuthController.php
protected function validator(array $data)
{
return Validator::make($data, [
'firstname' => 'required|max:255',
'lastname' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|
regex:array("/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/")|
min:8|
confirmed',
]);
}发布于 2016-01-05 09:33:35
Regex验证器接受regex字符串,但作为数组传递。
尝试更改您的代码
regex:array("/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/")至
regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/另外,请看@vks的答案。他的判罚看上去更清楚。
当使用regex模式时,可能需要在数组中指定规则,而不是使用管道分隔符,特别是当正则表达式包含管道字符时。
如果管道(|)叹息在正则表达式模式中可用,它可能与分隔符发生冲突。
发布于 2016-01-05 07:03:58
^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).{3,}$这应该是为了你。
https://stackoverflow.com/questions/34605890
复制相似问题