Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][JQuery]Sprawdzanie numeru komórkowego, i aktywacja dodatkowych pól
evolucja
post 17.08.2010, 22:55:44
Post #1





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

Ostrzeżenie: (0%)
-----


Mam formularz z 4 polami:
Telefon, Telefon dodatkowy, Checkbox1, Checkbox2

Czy ma ktoś klasę sprawdzającą numer komórkowy? Chodzi mi o to, aby w przypadku wpisania w pole Telefon lub Telefon dodatkowy numeru komórkowego(nie stacjonarnego)uaktywniły się oba checkboxy.

Musiało by to sprawdzać czy numer pasuje do wzorca: '505505505' lub '48505505505'

Będę wdzięczny za wskazówki smile.gif


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post 20.08.2010, 12:22:46
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Nie można na pałę wycinać 48! To kierunkowy na mazowieckie!
1. Trzeba wywalić wszystko co nie jest cyfrą.
2. Sprawdzić długość ciągu.
3. Jeśli ciąg ma 13 cyfr to tniemy 2 pierwsze i następne 11 zapisujemy do dalszej obróbki. Jeśli 2 pierwsze to '00' idziemy do kroku 4. Jeśli nie - to nie jest prawidłowy numer telefoniczny.
4. Jeśli ciąg ma 11 cyfr to tniemy 2 pierwsze i pozostałe 9 to numer. Możemy owe 2 pierwsze wykorzystać do określenia kraju. Jeśli nie jest on w tablicy, która zawiera kierunkowe do innych krajów - to nie jest prawidłowy numer telefoniczny międzynarodowy. Jeśli jest to 48 -> idziemy do kroku 5, jeśli nie to koniec bo chyba nie będziesz walidował numerów dla każdego kraju z osobna biggrin.gif
5. Jeśli ciąg ma 9 cyfr tniemy 2 pierwsze i porównujemy z kierunkowymi miast by określić czy jest to stacjonarny. Jeśli wyjdzie prawda to mamy do czynienia ze stacjonarnym. Możemy też wyciąć 3 pierwsze i porównać do numerów początkowych sieci komórkowych. Jeśli tutaj trafimy to wiemy, że mamy do czynienia z komórką.

Co jest fajne w tym algorytmie? Kaskadowość winksmiley.jpg Kto nie wie o co mi chodzi niech sprawdzi jak działa switch gdy żaden z case nie posiada break umieszczając w każdym z case jakieś echo winksmiley.jpg Tutaj też to można zastosować.

Tylko zwróć uwage na jedno... W tej funkcji nie możesz zwracać wartości true i false jedynie. Bo numerów międzynarodowych nie możesz tak podzielić. To powinna być funkcja w stylu validPhone, która zwraca: false dla errora, international dla międzynarodowego, polStat dla polskiego stacjonarnego i polMob dla polskiej komórki lub jakiś odpowiednik tego, przykładowo numeryczny 0 -error, 1 - międzynarodowy i tak dalej.

Bym zapomniał. Po co masz szaleć z wyrażeniami regularnymi co sugeruje pablo, skoro możesz wykorzystać prostsze in_array?
Powód edycji: [thek]:


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:33