Schizofrenní validace e-mailu: Mail\MailMimePart vs. Forms\Controls\TextBase
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- reeloo
- Člen | 1
Zdravím,
navrhuji sjednotit validaci e-mailových adres.
Mail\MailMimePart: https://api.nette.org/…art.php.html#81
<?php
preg_match('#^[^@",\s]+@[^@",\s]+\.[a-z]{2,10}$#i', $email)
?>
Forms\Controls\TextBase: https://api.nette.org/…ase.php.html#171
<?php
$atom = "[-a-z0-9!#$%&'*+/=?^_`{|}~]"; // RFC 5322 unquoted characters in local-part
$localPart = "(?:\"(?:[ !\\x23-\\x5B\\x5D-\\x7E]*|\\\\[ -~])+\"|$atom+(?:\\.$atom+)*)"; // quoted or unquoted
$chars = "a-z0-9\x80-\xFF"; // superset of IDN
$domain = "[$chars](?:[-$chars]{0,61}[$chars])"; // RFC 1034 one domain component
String::match($control->getValue(), "(^$localPart@(?:$domain?\\.)+[-$chars]{2,19}\\z)i");
?>
- Mikulas Dite
- Člen | 756
V Nette 2.0 by něco jako jednotné validátory měly být, takže konkrétně s tímhle se zatím asi hýbat nebude. Ale souhlasím, že změna by byla dobrá.