Autor Zpráva
lopikol
Profil
Našel jsem si tento reg. výraz pro úpravu čísla na formát +420xxxxxxxxx, ale potřeboval bych ho upravit tak, aby výsledkem bylo +420 xxx xxx xxx

function unifyPhone($number) {
    return preg_replace('~^(?=[^+])~', '+420', preg_replace('~\s+~', '', $number));
}


Dané osobě budu vděčný, jelikož reguláry vůbec neovládám.
panther
Profil
lopikol:
reguláry vůbec neovládám.
ani vyhledávání?

http://www.regularnivyrazy.info/telefonni-cislo.html
lopikol
Profil
panther:
ani vyhledávání?
1. Tohle jsem našel
2. oba končí chybou: No ending delimiter '^'
panther
Profil
lopikol:
ne, reguláry jsou v pořádku, zapomněl jsi na delimiter, v [#1] to je „~“.
lopikol
Profil
panther:
Vůbec nevim oč jde.

Z toho důvodu jsem se zeptatl, ale ...
panther
Profil
preg_replace('~^(\+420)? ?[0-9]{3} ?[0-9]{3} ?[0-9]{3}$~', '', $number)
lopikol
Profil
1. Díky
2. Kdyby tam to tam bylo napsané, tak není problém
3. Nic to nevypíše. Když jí dumpnu, tak to vypíše string(0) ""
lopikol
Profil
Poradíš mi ještě?
DarkMeni
Profil
lopikol:
3. Nic to nevypíše. Když jí dumpnu, tak to vypíše string(0) ""
Protože když je číslo ve správném tvaru (+420 xxx xxx xxx nebo +420xxxxxxxxx) tak se nehradí prázdným řetězcem:

panther:
preg_replace('~^(\+420)? ?[0-9]{3} ?[0-9]{3} ?[0-9]{3}$~', '', $number);


A přidávání mezer ob 3 čísla by nebyl takovej problém, kdyby jsi si byl jistý že tam bude 9 číslic, ale kdyby jich tam bylo míň nebo víc tak pak už to trochu problém je. Je teda nutný tam přidávat mezery?
lopikol
Profil
DarkMeni:
Protože když je číslo ve správném tvaru (+420 xxx xxx xxx nebo +420xxxxxxxxx) tak se nehradí prázdným řetězcem:
Právě, že není. Dal jsem tam jen xxxxxxxxx (9) a nic to navypíše, ale když těch číslic napíšu mín (8), tak to těch 8 vypíše bez jakékoliv úpravy.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0