ugrás a tartalomhoz

Telefonszám mező formázása

halee · 2007. Júl. 23. (H), 16.43
Sziasztok,

Egy olyan problémám van, hogy adott egy nagy form, mindelféle mezővel - ez most nem is érdekes -, amin van egy telefonszám beviteli mező. Az ügyfélnek az volt a kérése, hogy tagoltan lehessen felvinni a telefonszámot.

Ezzel eddig nem is volna probléma. Már írtam is rá egy jópofa kis scriptet, ami bevitel közben megfelelően formázza a mező tartalmát.

Amiből a probléma adódik, az az, hogy ebbe a mezőbe különböző formátumú telefonszámok is kerülhetnek, pl.:
Input -> Output
555555 -> 555-555
0680555555 -> (06-80) 555-555
0611234567 -> (06-1) 123-4567
06701234567 -> (06-70) 123-5678


Még ezzel sem lenne gond, de mi van, ha még hozzáveszem a nemzetközi számokat is?! Tud valaki olyan leírást ahol az összes lehetséges telefon-formátum dokumentálva van? - Nem mintha azt tervezném, hogy minden lehetséges ország kódra írok külön megjelenítőt... ;)))

Szóval nincs erre valami jól bevált módszere/ötlete valakinek??

köszi előre is az ötleteket,
Halee
 
1

Elfogadott forma

zila · 2007. Júl. 23. (H), 17.05
+99 (999) 999-9999 (+ország (körzet) telefonszám)

Nem tudom, hogy erre van-e szabvány...

A lényeg, hogy a telefonszámnak nem része a 00 ill 06 mivel ezek nálunk meg mondjuk európában így van, de közel sem biztos hogy pl. az usa-ban 06-tal hívsz vidéket...
2

Ez eddig ok

halee · 2007. Júl. 23. (H), 17.23
Ez eddig oké, bár úgy tudom, hogy az USA-nak pl. 1 az országkódja és az ugye csak egy karakter.
Tehát amiből a problémám származik, hogy az volt az elképzelés, hogy csak számokat gépel az user és abból előállítom a helyes formátumot.

Mondjuk megoldás lehet, hogy egy helyett három input text-et teszek ki (ország, körzet, telszám.) és mindegyiknek meglesz a maga szerepe, csak akkor ugye az endusernek kell a tab-ot (és az inputokat) helyesen haszálnia... ;)) Ebben meg annyira nem hiszek...
3

maximum

zila · 2007. Júl. 23. (H), 17.44
az országkód max 2 számjegy, körzetszám max három...

A formázással nem úszod meg az ellenőrzést. Ha addig nem engeded el a formot amíg nem illik rá szabvány telefonszám formátum, akkor előbb-utóbb megtanulják a userek, hogy nincs kecmec :)

Ez a regexp
m/^\+(\d{1,2})\D*(\d{1,3})\D*(\d{3})\D*(\d{3,4})$/
a +36 1 378-9518 formátumot dolgozza fel.
Akár így is: +3613789518 vagy így +36-1-378-9518 de ezt is megeszi +36:1:378_9518 vagy +36 23 123-456

Update: az ország is lehet 3 számjegy (kösz breakline :), ezért a regexpben az első coportosítás {1,2} helyett {1,3}
5

tab

Marcell · 2007. Júl. 24. (K), 00.19
csak akkor ugye az endusernek kell a tab-ot (és az inputokat) helyesen haszálnia
Itt arra gondolsz, hogy nyomogatnia kell a tab-ot, hogy a következő inputba kerüljön? Mert ezt te is megoldhatod neki JS-el.

Én a helyedben kiraknék 3 egyértelmű mezőt (már a széleséggel is lehet idomítani őket: ország, körzet rövid), az ország elé rögtön lehet egy + jelet rakni és akkor egyértelmű, hogy oda országkód kell és csak számokat engedsz meg. Az inputok közötti váltást lehet JS-sel könnyíteni, a körzetszám utáni sokszámjegyes részt is lehet maxlength értékével szabályozni, kb mint itt: https://examples.wufoo.com/forms/workshop-registration/

Aztán ha nagyon ráér az ember, akkor lehet kirakni kérdőjeleket és ha rákattint mindenféle információs buborékkal terelgetni a GYP-seket. Mindenestre egyszerűbb mint a 100 fajta formátummal bűvészkedni és mint tudjuk, a júzerek úgyis kreatívabbak nálunk, ha hibakeresésről van szó, tehát előbb-utóbb úgyis kitalálnának egy 101.-et. :D
6

telefonszám, irányítószám

virág · 2007. Júl. 24. (K), 08.42
Teljesen igazatok van, csak egyetlen dolgot fűznék hozzá. Mindenképpen tesztelj! Ugyanis eléggé idegesítő egy felhasználónak, amikor olyan űrlappal találkozik ahol szépen bepötyögi az irányítószámot és a telefonszámot - mindkettőt helyesen - erre az ellenőrző progi kiírja neki, hogy márpedig ő okosabb és csakazért sem fogadja el! Ez általában eléggé egyértelmű hatást vált ki, eszébe sincs a felhasználónak szenvedni, otthagyja az oldalt és ennyi (egy regisztrációnál ez eléggé nem kívánatos sztem). Én sok ilyennel találkoztam már... Magyarországon pl. elterjedt a 4 karakteres irányítószám, a webes űrlapok is így épülnek fel, miközben általában ott van egy országlista amiből lehet választani, tehát a külföldi adatokat is fogadni szeretnék (ami ugye Magyarországon nem mellékes tény, mert nagyon sok pl. a határontúli magyar netező, akik ugye éppen úgy használnak magyarországi portálokat, mint az magyar állampolgárok), sajnos azonban nem minden országnak van négyjegyű irányítószáma...Szlovákiában pl. ötjegyű. Jobb esetben a négy nullát elfogadják, viszont ezt a lehetőséget nem tüntetik fel... Így marad a szenvedés és a mérgelődés. Ezért gondolom úgy, hogy tesztelni kell mindent...százszor.
7

Szlovák irányítószám

Max Logan · 2007. Júl. 24. (K), 09.33
[...] sajnos azonban nem minden országnak van négyjegyű irányítószáma...Szlovákiában pl. ötjegyű. [...]

Sőt "xxx xx" formában vannak a szlovák és cseh irányítószámok, valamint kezdődhet nullával, ami nekem nem volt egyértelmű, ezért a rendszerben módosítani kellett az irányítószám ellenőrzést (persze az ilyen dolgokat mindig akkor tudom meg, amikor már készen van az adott része a rendszernek ...).

UpDate: Egy lista az irányítószám formátumokról
10

nemzetközi forma

gex · 2007. Júl. 24. (K), 10.49
a magyar irányítószámok itthon igaz, hogy négyjegyűek, viszont ha külföldről küldesz levelet legjobb tudomásom szerint a H-xxxx formát kell használni.
9

Csak egy kis hozzáfűzés

halee · 2007. Júl. 24. (K), 10.35
Azzal nincs gond, hogy lehet könnyíteni az user dolgát, ha js-el arrébb teszem a focus-t (bár erről egy másik probléma jut eszembe: a formelement.focus() FF alatt devtoolbar szerint exception-t dob...) a gond azzal van inkább, hogy nem tudod eldönteni, hogy adott mezőbe éppen hány karaktert kell gépelnie az usernek.
4

telefonszámok

breakline · 2007. Júl. 23. (H), 17.47
http://www.wtng.info/index.html

parancsolj:)
8

köszi

halee · 2007. Júl. 24. (K), 10.32
köszi, ezzel meggyőztél, hogy miért ne akarjak univerzális formázó scriptet írni... ;))
11

könyvtár

breakline · 2007. Júl. 24. (K), 17.24
Itt van egy oldal egyébként, ahol pénzt kérnek érte, és csak 40 ország telefonszámainál működik egyelőre, szóval lehet nem hülyeség nekiállni: :)

http://quentinsagerconsulting.com/documents/10025.htm
12

perl

gex · 2007. Júl. 24. (K), 18.08
ez nem perl egészen véletlenül?