escapovaný Pattern = nefunkční Pattern
- Myiyk
- Člen | 321
Narazil jsem na chybu, že mi formulář nechce uznat text.
$form->addText('username', 'Přezdívka:')
->addRule(Form::PATTERN, 'Přezdívka smí obsahovat pouze tyto znaky: a-z, A-Z, 0-9, _ (podtržítko)', '[\w]');
S použitím automatického vykreslení:
<input type="text" class="text" name="username" id="frmregistrationForm-username"
data-nette-rules="{op:':pattern',msg:"P\u0159ezd\u00edvka sm\u00ed obsahovat pouze tyto znaky: a-z, A-Z, 0-9, _ (podtr\u017e\u00edtko)",arg:"[\\w]"}"
pattern="[\w]" value="">
Z patternu [\w] se stane
arg:„[\\w]“.
Místo toho, aby to uznalo jakýkoli „slovní“ znak, tak to uzná pouze
w, jinak se formulář pochopitelně neodešle.
Používám Nette 2.0.3
Editoval Myiyk (22. 4. 2012 17:48)
- Majkl578
- Moderator | 1364
Myiyk napsal(a):
OK, už skoro funguje, ale nebere to diakritiku.
To ani nemá. \w jsou alfanumerické znaky a podtržítko. Viz dokumentace:
A „word“ character is any letter or digit or the underscore character, that is, any character which can be part of a Perl „word“. The definition of letters and digits is controlled by PCRE's character tables, and may vary if locale-specific matching is taking place. For example, in the „fr“ (French) locale, some character codes greater than 128 are used for accented letters, and these are matched by \w.