Используя валидаторы Symfony
Как предотвратить некоторые HTML-теги, такие как
<input></input><textarea><textarea>
быть введенным в поле ввода и сохраненным в базе данных?
@OKsure, я имею в виду только конкретные.




Вы можете утверждать, используя регулярное выражение для свойств текста / строки в своей сущности. Например, это должно блокировать любые HTML-теги в строке:
// src/Entity/Thing.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Thing
{
/**
* @Assert\Regex(
* pattern = "/<[a-z][\s\S]*>/i",
* match=false,
* message = "Your text cannot contain HTML"
* )
*/
protected $text;
}
Это должно проверить наличие элементов input и textarea:
// src/Entity/Thing.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Thing
{
/**
* @Assert\Regex(
* pattern = "/<(?=.*? .*?/ ?>|textarea|input)[a-z]+.*?>|<([a-z]+).*?</\1>/i",
* match=false,
* message = "Your text cannot contain certain HTML tags"
* )
*/
protected $text;
}
Когда вы говорите «некоторые HTML-теги», вы имеете в виду все HTML-теги или определенные?