Lze nějak do regexpu doplnit modifikátor?
- Kcko
- Člen | 468
Mám takovou základní ochranu proti spamu, nicméně REGEXP nefunguje, když člověk odentruje v textaree.
Modifikátor „m“ mi vůbec nefunguje, lze to nějak zapsat?
<?php
$form->addTextArea('message', 'Dotaz')
->setRequired('Vyplňte text Vašeho dotazu')
->addRule($form::PATTERN,
'Zadejte prosím alespoň jedno slovo s diakritikou (detekce proti spamu)',
'.*(ě|š|č|ř|ž|ý|á|í|é|ť|ó|ú|ů|ň|Ě|Š|Č|Ř|Ž|Ý|Á|Í|É|Ť|Ó|Ú|Ů|Ň).*');
}
?>
- uestla
- Backer | 799
Je to kvůli kompatibilitě s HTML atributem pattern
, který
taky nepodporuje modifikátory a matchuje celý uživatelský vstup (což dává
smysl) – https://github.com/…extInput.php#L109
Ten ale existuje jen u jednořádkových inputů, u textarey ne –
nicméně formulářové pravidlo jako takové se musí chovat vždycky stejně.
Jediné, co je v tuhle chvíli možné použít a změnit tak
„modifikátor“ reguláru, je pravidlo Form::PatternInsensitive
,
ale to neřeší tvůj případ. Takže bych použil ten workaround :-)
- Kcko
- Člen | 468
uestla napsal(a):
Je to kvůli kompatibilitě s HTML atributem
pattern
, který taky nepodporuje modifikátory a matchuje celý uživatelský vstup (což dává smysl) – https://github.com/…extInput.php#L109Ten ale existuje jen u jednořádkových inputů, u textarey ne – nicméně formulářové pravidlo jako takové se musí chovat vždycky stejně. Jediné, co je v tuhle chvíli možné použít a změnit tak „modifikátor“ reguláru, je pravidlo
Form::PatternInsensitive
, ale to neřeší tvůj případ. Takže bych použil ten workaround :-)
To mě vůbec nenapadlo, ale dává to smysl, díky za objasnění, nakonec jsem to použil :-) protože můj validátor add vlastní funkce, fungoval dobře a jak jsem chtěl, ale ne v live validaci a psát zvlášt se mi už nechtělo.