Validace telefonního čísla
- grovik
- Člen | 76
Než to tu rozpitváme zeptám se jestli je nějaký aktuální funkční hotová věc na validaci telefonního čísla?
$form->addText('phone', 'Telefonní číslo:')
->addRule(Form::PATTERN, 'Telefonní číslo není platné', '^\+420\d{9}$');
->addRule(function ($control) {return Validators::isNumericInt($control->getValue()) && Validators::length($control->getValue(), 9, 9);}, 'Telefonní číslo není platné.');
->addRule(function ($control) {return preg_match('/^[1-9][0-9]{8}$/', str_replace([' ', '-', '/'], '', $control->getValue()));}, 'Telefonní číslo není platné.');
Zkoušel jsem zatím tohle.
Různé varianty regulárního výrazu. Ale výsledek je řekněme nejistý.
- Zdeno1981
- Člen | 115
Koukni na tenhle doplněk, mohlo by ti to pomoct https://github.com/…number-input
Já ho používám v jednom projektu a funguje dobře.
- grovik
- Člen | 76
Zdeno1981 napsal(a):
Koukni na tenhle doplněk, mohlo by ti to pomoct https://github.com/…number-input
Já ho používám v jednom projektu a funguje dobře.
Na to jsem narazil, ale přes Composer se mi to nedaří nainstalovat (podle chyby to má problém s verzí Nette) a popravdě nechci to zkoušet a něco si rozdrbat…
- Marek Bartoš
- Nette Blogger | 1280
Ten doplněk používá brick/phonenumber, což je
wrapper nad giggsey/libphonenumber-for-php.
V PHP je to celkem jasná volba pro validaci čísel :)
Můžeš použít text input a formát kontrolovat v onValidate, custom input
na to vůbec nepotřebuješ.