Моя компания получает несколько (3-5) спам-сообщений в день через контактную форму клиента. Используемая нами reCaptcha по какой-то причине не блокирует их, но их так мало, что, возможно, речь идет о реальном человеке.
Единственное, что у них общего, - это какая-то URL-ссылка в текстовом поле абзаца. предназначен для дополнительных комментариев. У реальных клиентов нет никаких причин размещать URL-адреса, поэтому мы решили, что можем просто установить проверку, чтобы исключить их и назвать это днем. Но я не могу заставить его работать.
При редактировании текстового поля я перешел в Advanced> Model> ValidatorDefinition, чтобы я мог ввести свой код регулярного выражения для запрета чего-либо с помощью http / https / ftp:
^(?!((http[s]?|ftp):\/)?\/?)
Но у меня возникают проблемы с определением, в какое поле это ввести и какие другие поля мне нужно изменить, чтобы убедиться, что это работает правильно. Из этой статьи кажется, что поле ExpectedFormat должно быть Custom, но где мой код регулярного выражения go? Помещение его в поле RegularExpression активирует RegularExpressionViolationMessage для любого контента, не только для URL, поэтому я подозреваю, что мои регулярные выражения могут быть неправильными, даже если они у меня в нужном месте.