<html><head><title>Re: [Moscow.pm] Валидатор для форм: хочу [не очень-то и] странного</title>
</head>
<body>
<span style=" font-family:'Courier New'; font-size: 9pt;">Здравствуйте, Konstantin.<br>
<br>
Мне очень понавились валидаторы в Mojolicious, особенно добавлять свои.<br>
<br>
потом просто делаем вызовы к нужным валидаторам и на выходе получем хеш проверенных данных.<br>
Если ещё и страничку с помощью Mojolisious генерируете, то, в довесок за бесплатно, получаете выделения ошибочно введенных полей с описанием ошибки.<br>
<br>
Возможно сам по себе модуль и не будет очень полезен (не знаю), но как в комбинации со всем остальным - рекомендую.<br>
<br>
</span><a style=" font-family:'Courier New'; font-size: 9pt;" href="http://mojolicious.org/perldoc/Mojolicious/Validator">http://mojolicious.org/perldoc/Mojolicious/Validator</a> <br>
<br>
<br>
<br>
<span style=" font-family:'Courier New'; font-size: 9pt;">Вы писали 3 сентября 2016 г., 11:09:18:<br>
<br>
</span><table>
<tr>
<td width=2 bgcolor= #0000ff><br>
</td>
<td><span style=" font-family:'courier new'; font-size: 9pt;">Приветствую. <br>
<br>
Может, подскажет кто модуль? Просьба не холиварить на тему "лучше-хуже", просто "огласите весь список" (с).<br>
<br>
 Хочу фильтр/валидатор/иное очистное сооружение для форм. Требования примерно такие:  <br>
 <br>
* инициализируем один раз, валидируем 100500 раз;<br>
* на входе хеш параметр => строка;<br>
* валидация параметра, как минимум, включает regexp, required =1|0 и дефолтное значение;<br>
* на выходе всё, что выжило после валидации, или пусто, если не прошло валидацию что-то из required. (Если дохнет - тоже ок). Если какой-то мараметр мусор - он просто молча выкидывается; <br>
* опционально хеш с непрошедшими валидацию как второй return;  <br>
* опционально - strict mode, т.е. если есть лишние или хоть один параметр defined и провалил валидацию - нафиг;<br>
 <br>
Т.е. псевдокод:  <br>
my $cleaner = My::Validator->( \%per_param_validation_profile); <br>
# much later <br>
my $safe_data = $cleaner->sanitize( \%evil_user_input ); <br>
my ($safe_data, $failed_param_details) = $cleaner->sanitize( \%evil_user_input );<br>
<br>
На CPAN-е валидаторов, ввв-валидаторов и пр., понятное дело, три дня греби лопатой - я не смог продраться. <br>
<br>
Был один как мне нужно, только наоборот - <br>
my $val = My::Validator->new( $query );<br>
$val->check( \%profile );<br>
<br>
Но я-то хочу закешировать правила и применять к разным инпутам, а не наоборот :) <br>
<br>
Спасибо!<br>
<br>
--<br>
Konstantin S. Uvarin</td>
</tr>
</table>
<br><br>
<br>
<br>
<span style=" font-family:'arial'; color: #c0c0c0;"><i>-- <br>
С уважением,<br>
 Eugen                          </i></span><a style=" font-family:'arial';" href="mailto:kes-kes@yandex.ru">mailto:kes-kes@yandex.ru</a></body></html>