РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
637 of 1392 menu

Правило not_regex

Правило not_regex применяется к полям формы и проверяет, что значение не соответствует заданному регулярному выражению. Это правило является противоположностью правила regex и позволяет запретить определённые форматы данных. Правило принимает один параметр - шаблон регулярного выражения, которому значение не должно соответствовать.

Синтаксис

<?php $rules = [ 'field' => 'not_regex:/pattern/' ]; ?>

Пример

Давайте проверим, что поле 'username' не содержит специальных символов:

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; $request = new Request(); $request->merge(['username' => 'user@name']); $rules = [ 'username' => 'not_regex:/[@#\$%^&*()_+!]/' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { echo "Validation failed: " . $validator->errors()->first(); } else { echo "Validation passed"; } ?>

Результат выполнения кода:

"Validation failed: The username format is invalid."

Пример

Давайте запретим в поле 'phone' использование формата с пробелами:

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; $request = new Request(); $request->merge(['phone' => '+7 999 123-45-67']); $rules = [ 'phone' => 'not_regex:/\s/' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { echo "Validation failed"; } else { echo "Validation passed"; } ?>

Результат выполнения кода:

"Validation failed"

Пример

Давайте проверим, что поле 'password' не содержит последовательных символов:

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; $request = new Request(); $request->merge(['password' => 'abcd1234']); $rules = [ 'password' => 'not_regex:/(.)\1/' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { echo "Validation failed"; } else { echo "Validation passed"; } ?>

Результат выполнения кода:

"Validation passed"

Пример

Давайте проверим, что поле 'email' не принадлежит определённому домену с использованием нескольких правил:

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; $request = new Request(); $request->merge(['email' => 'test@temp-mail.org']); $rules = [ 'email' => [ 'required', 'email', 'not_regex:/@temp-mail\.org$/' ] ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { echo "Validation failed: " . $validator->errors()->first(); } else { echo "Validation passed"; } ?>

Результат выполнения кода:

"Validation failed: The email format is invalid."

Пример

Давайте используем правило not_regex в классе FormRequest:

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class ArticleRequest extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'title' => [ 'required', 'string', 'max:255', 'not_regex:/[<>{}]/' ], 'content' => [ 'required', 'string', 'not_regex:/<script>/' ] ]; } public function messages() { return [ 'title.not_regex' => 'The title contains forbidden characters.', 'content.not_regex' => 'The content contains prohibited tags.' ]; } } ?>

Смотрите также

  • правило regex,
    которое проверяет соответствие регулярному выражению
  • правило alpha,
    которое проверяет алфавитные символы
  • правило alpha_dash,
    которое проверяет буквы, цифры, дефис и подчёркивание
  • правило not_in,
    которое проверяет отсутствие значения в списке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить