我想检查用户名是否包含字母和数字。我正在尝试使用alpha_num
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required',
'username' => 'required|alpha_num',
'password' => 'min:6|required',
]);
}
但它没有用。 请帮我解决这个问题。
答案 0 :(得分:0)
alpha_num过滤器只检查用户名是否仅包含字母和数字,但如果两者都存在则不会。
根据您的需要,有两个可以验证用户名的正则表达式
if (preg_match('/[A-Za-z]/', $myString) && preg_match('/[0-9]/', $myString))
{
echo 'Contains at least one letter and one number';
}
1a]-/*+
和aaaaaaaa1
将通过此测试1-_%
和a
将无法通过测试if (preg_match('/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$/', $myString))
{
echo 'Contains at least one letter and one number and only alphanum';
}
有关此正则表达式的更多信息:https://regex101.com/r/GrLGbT/1
1111111a
和aaaaaaaa1
将通过此测试1a-
和a
将无法通过测试获得正则表达式后,您需要创建自定义验证程序。在这里查看文档:{{3}}
答案 1 :(得分:0)
如果您不想输入数字,可以尝试 'name'=>'required | regex:/ ^ [\ pL \ s-] + $ / u | max:255',
如果您希望它为字母数字,则: 'name'=>'required | string | max:255',