![]() |
![]() |
![]()
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 ![]() -------------------- zmoderowano - waga i rozmiar
|
|
|
![]() |
![]()
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 ![]() 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ść ![]() ![]() 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
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:33 |