Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将表单输入与正则表达式进行比较_Php_Html_Mysql_Laravel_Frameworks - Fatal编程技术网

Php 将表单输入与正则表达式进行比较

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']

我正在使用Laravel Auth进行身份验证。我需要在validator方法中将字段输入(电话号码)与正则表达式进行比较。我怎样才能做到这一点。下面是我使用的方法代码

(目前我正在硬编码我的号码“0312 1234567”,我如何在这里使用正则表达式?)

公共函数验证程序(数组$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错误,但我们不能在具有管道的验证器中使用正则表达式。我们必须为该正则表达式创建一个单独的数组。这不是吗?