Правило regex
Правило regex применяется к полю формы и проверяет,
соответствует ли его значение указанному регулярному выражению.
Правило принимает один параметр - шаблон регулярного выражения
в виде строки. Если значение поля не соответствует шаблону,
валидация проваливается. Это правило полезно для проверки
форматов данных, которые невозможно проверить другими правилами.
Синтаксис
<?php
use Illuminate\Validation\Rule;
use Illuminate\Http\Request;
$request->validate([
'field' => 'regex:/pattern/'
]);
?>
Пример
Давайте проверим, что поле 'username' содержит только
буквы латинского алфавита и цифры:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'username' => 'required|regex:/^[a-zA-Z0-9]+$/'
]);
echo "Validation passed";
}
}
?>
Результат выполнения кода при отправке корректных данных:
"Validation passed"
Если отправить значение 'user@123', валидация провалится,
так как символ @ не разрешён шаблоном.
Пример
Давайте проверим, что поле 'phone' соответствует
формату номера телефона:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ContactController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'phone' => 'required|regex:/^\+?[0-9]{10,15}$/'
]);
echo "Phone number is valid";
}
}
?>
Результат выполнения кода при отправке корректного номера:
"Phone number is valid"
Пример
Давайте проверим, что поле 'postal_code' соответствует
формату почтового индекса:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class AddressController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'postal_code' => 'required|regex:/^[0-9]{5}(-[0-9]{4})?$/'
]);
echo "Postal code is valid";
}
}
?>
Результат выполнения кода при отправке корректного индекса:
"Postal code is valid"
Пример
Давайте проверим, что поле 'ip' соответствует
формату IPv4-адреса:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class NetworkController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'ip' => 'required|regex:/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/'
]);
echo "IP address is valid";
}
}
?>
Результат выполнения кода при отправке корректного адреса:
"IP address is valid"