Autor | Zpráva | ||
---|---|---|---|
majo80 Profil * |
#1 · Zasláno: 7. 7. 2015, 16:25:11
Zdravím,
potreboval by som zistiť správny formát napísaného telefónneho čísla tak, aby toto číslo spĺňalo nasledovné požiadavky: - ak sú prvé 4 znaky +421 dĺžka čísla musí mať presne 13 znakov (vrátane znamienka plus) - ak sú prvé 3 znaky 421 dĺžka čísla musí mať presne 12 znakov - ak sú prvé 2 znaky 09 dĺžka čísla musí mať presne 10 znakov Nemusí to byť skontrolované v jednom kroku (jeden reg. výraz) ale kľudne aj v troch po sebe idúcich. Ďakujem |
||
Kcko Profil |
#2 · Zasláno: 7. 7. 2015, 16:30:03
majo80:
A co máš hotového? |
||
juriad Profil |
\+?421\d{9}|09\d{8} Dvě alternativy (to říká to svislítko uprostřed): Něco co začíná nepovinným + a pak 421 a za tím 9 cifer, nebo 09 a 8 cifer. Začátek a konec řetězce (metaznaky ^$ si doplň podle potřeby). |
||
_Leopik 2x Profil * |
#4 · Zasláno: 7. 7. 2015, 16:34:25
Tvoj výraz by mohol vyzerať nejako takto
(^\+421\d{9}$|^421\d{9}$|^09\d{8}$) Dobrý nástroj na testovanie/vytváranie regulárnych vyýrazov je https://regex101.com |
||
Keeehi Profil |
#5 · Zasláno: 7. 7. 2015, 17:07:53
Je dobré odstranit ze vstupu nenumerické znaky a teprve pak ho validovat. Někdo je totiž zvyklý do čísel psát mezery, nějaký Američan ti tam zase bude cpát závorky a pomlčky. A není důvod otravovat uživatele nějakým přesným formátem, když si ho umíme získat sami.
<?php $rawPhoneNumber // = $_POST["telefon"]; $normalizedPhoneNumber = preg_replace('~\D+~','',$rawPhoneNumber); if (!preg_match('~^421\d{9}$|^09\d{8}$~', $normalizedPhoneNumber)) { echo "Neplatné telefonní číslo"; exit; } // use $normalizedPhoneNumber on next lines |
||
Časová prodleva: 9 let
|
0