将表单输入与正则表达式进行比较
Compare a form input with a regex expression
我正在使用 Laravel Auth 进行身份验证。我需要将字段输入(Phone 数字)与验证器方法中的正则表达式进行比较。我怎样才能做到这一点。下面是我使用的方法代码,
(目前我正在硬编码我的号码“0312 1234567”我如何在这里使用正则表达式?)
public function validator(array $data)
{
if($data['emailOrNumber'] == "03121234567") {
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'emailOrNumber' => ['required', 'numeric','unique:usersNew,phone'],
'password' => ['required', 'string', 'min:8'],
'surname2' => ['required', 'string', 'max:255']
]);
}
}
如果要检查正则表达式,可以使用正则表达式验证规则。
你可以使用
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'emailOrNumber' => ['required', 'numeric','unique:usersNew,phone', 'regex:/(\+[0-9]{2})?[0-9]{10,12}/g'],
'password' => ['required', 'string', 'min:8'],
'surname2' => ['required', 'string', 'max:255']
]);
小提示,我不会将电子邮件或 phone 号码保存在数据库的同一列中。这是两个完全不同的东西,所以我会把它们保存在不同的列中。您始终可以将两列中的一列留空。
上阅读有关此验证的更多信息
我正在使用 Laravel Auth 进行身份验证。我需要将字段输入(Phone 数字)与验证器方法中的正则表达式进行比较。我怎样才能做到这一点。下面是我使用的方法代码,
(目前我正在硬编码我的号码“0312 1234567”我如何在这里使用正则表达式?)
public function validator(array $data)
{
if($data['emailOrNumber'] == "03121234567") {
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'emailOrNumber' => ['required', 'numeric','unique:usersNew,phone'],
'password' => ['required', 'string', 'min:8'],
'surname2' => ['required', 'string', 'max:255']
]);
}
}
如果要检查正则表达式,可以使用正则表达式验证规则。
你可以使用
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'emailOrNumber' => ['required', 'numeric','unique:usersNew,phone', 'regex:/(\+[0-9]{2})?[0-9]{10,12}/g'],
'password' => ['required', 'string', 'min:8'],
'surname2' => ['required', 'string', 'max:255']
]);
小提示,我不会将电子邮件或 phone 号码保存在数据库的同一列中。这是两个完全不同的东西,所以我会把它们保存在不同的列中。您始终可以将两列中的一列留空。
上阅读有关此验证的更多信息