Сравните входные данные формы с выражением регулярного выражения - PullRequest
0 голосов
/ 04 ноября 2019

Я использую Laravel Auth для аутентификации. Мне нужно сравнить поле ввода (номер телефона) с выражением регулярного выражения в методе валидатора. Как я могу это сделать. Ниже приведен код метода, который я использую,

(в настоящее время я жестко кодирую свой номер "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']
        ]);
    }
}

1 Ответ

0 голосов
/ 04 ноября 2019

Если вы хотите проверить соответствие регулярному выражению, вы можете использовать правило проверки Regex.

Вы можете использовать

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

Небольшая подсказка, я бы не стал сохранять электронную почту или телефонномер в том же столбце в базе данных. Это две совершенно разные вещи, поэтому я бы сохранил их в разных столбцах. Вы всегда можете оставить один из двух столбцов пустым.

Подробнее об этой проверке можно прочитать на https://laravel.com/docs/5.7/validation#rule-regex

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...