Php 将表单输入与正则表达式进行比较
我正在使用Laravel Auth进行身份验证。我需要在validator方法中将字段输入(电话号码)与正则表达式进行比较。我怎样才能做到这一点。下面是我使用的方法代码 (目前我正在硬编码我的号码“0312 1234567”,我如何在这里使用正则表达式?)Php 将表单输入与正则表达式进行比较,php,html,mysql,laravel,frameworks,Php,Html,Mysql,Laravel,Frameworks,我正在使用Laravel Auth进行身份验证。我需要在validator方法中将字段输入(电话号码)与正则表达式进行比较。我怎样才能做到这一点。下面是我使用的方法代码 (目前我正在硬编码我的号码“0312 1234567”,我如何在这里使用正则表达式?) 公共函数验证程序(数组$data) { 如果($data['emailOrNumber']==“03121234567”){ 返回验证器::生成($data)[ 'name'=>['required'、'string'、'max:255']
公共函数验证程序(数组$data)
{
如果($data['emailOrNumber']==“03121234567”){
返回验证器::生成($data)[
'name'=>['required'、'string'、'max:255'],
'emailOrNumber'=>['required','numeric','unique:usersNew,phone'],
'password'=>['required','string','min:8'],
'姓氏2'=>['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']
]);
小提示,我不会将电子邮件或电话号码保存在数据库的同一列中。这是两个完全不同的东西,所以我会将它们保存在不同的列中。您可以始终将两列中的任意一列留空
您可以在上阅读有关此验证的更多信息。您没有硬编码数字,只需检查数字。@TharakaDilshan我想在if条件下用正则表达式检查输入数据。你知道我该怎么做吗?你想检查这个字符串是否只包含数字吗?在这种情况下,可以使用
is\u numeric
php函数。它可以使用前导零,但也可以使用前导的+
和-
,这可能会导致一些bugsThanks@tim错误,但我们不能在具有管道的验证器中使用正则表达式。我们必须为该正则表达式创建一个单独的数组。这不是吗?