+, s úvodními nulami — a nemusíte je čistit sami. Tato stránka popisuje, jak normalizace probíhá a jak se zachází s národními čísly bez mezinárodní předvolby.
Proces normalizace
Normalizace má dva kroky, které se provádějí vždy a v tomto pořadí:- Odstranění všech nečíselných znaků. Ze vstupu se odeberou mezery, pomlčky, závorky, znaménko
+i jakýkoliv jiný znak, který není číslice. Zůstane pouze posloupnost číslic0–9. - Odstranění všech úvodních nul. Z výsledné posloupnosti se zleva odeberou všechny znaky
0, dokud číslo nezačíná nenulovou číslicí.
Všechny tři varianty vedou na totéž číslo
420777884070. Nemusíte se tedy starat o to, zda číslo přišlo z formuláře, z CRM nebo z ručního zadání — normalizace srovná formátování za vás.
Národní čísla bez mezinárodní předvolby
Zvláštní případ nastává, když po normalizaci zůstane národní číslo bez mezinárodní předvolby — například777884070 (nebo 0777 884 070, které se po odstranění úvodní nuly změní na 777884070).
Takové číslo samo o sobě neurčuje zemi doručení. Aby zprávy zůstaly funkční, SmsManager v tomto případě ověří, z jaké země je založen váš účet, a podle toho zkusí variantu s doplněnou mezinárodní předvolbou dané země.
Pro účet registrovaný v České republice (předvolba 420) tedy platí:
Tato logika zajišťuje, že národní čísla odeslaná bez předvolby dojdou ke správnému příjemci ve stejné zemi, ze které byl účet založen.
Doporučení
Normalizace je navržena tak, aby byla tolerantní, ale nejspolehlivější je předávat čísla už v mezinárodním tvaru:- Preferujte plný mezinárodní formát —
420777884070nebo+420 777 884 070. Tím se úplně vyhnete doplňování předvolby podle země účtu a odstraníte veškerou nejednoznačnost. - Na doplnění národní předvolby spoléhejte jen tehdy, když víte, že všichni příjemci jsou ze stejné země jako váš účet.
- Formátování si nemusíte hlídat. Mezery, pomlčky, závorky i znaménko
+normalizace odstraní, takže čísla nemusíte před odesláním nijak čistit.