15

Myśl globalnie, działaj lokalnie

To, co powiem, ale podczas całego czasu jak ja deweloper zawsze widać dużych firm, takich jak Google, Microsoft, Oracle i tak zrobić walidacji w w sposób lokalny: wiedzą, z jakiego kraju pochodzę, aby spróbowali zweryfikować mój numer telefonu, kod pocztowy i inne dane, takie jak numery kont bankowych, z odpowiednimi metodami walidacji dla mojego kraju. Wczoraj zapisałem się do kasy Google, a nawet pokazali mi przykłady formatów kodów pocztowych w moim kraju!i18n Walidacje

Moje pytanie brzmi: jak to zrobić? Wiem, że mają tysiące pracowników, ale trudno mi uwierzyć, że wszyscy musieli wymyślić odwiert. Istnieją niezliczone metody walidacji dla Stanów Zjednoczonych, ale co z resztą świata? Nie widziałem jeszcze pojedynczy open source godnej biblioteki (z wyjątkiem bardzo incomplete and outdated PEAR attempt) do przeprowadzenia walidacji na różnych wspólnych aspektów takich krajach jak:

  • ID Cywilnego
  • NIP
  • SSN (Social Security Number)
  • BBAN (Podstawowy Numer rachunku Bankowego)
  • faksu, telefonu i numery telefonów komórkowych
  • kodów pocztowych/Zip
  • Licencję Płyty
  • Numery seryjne banknotów
  • i tak dalej ...

Czy istnieje jakieś dobrze ukryte zasoby, których nie jestem świadomy?

+0

Nie sądzę, że to właściwe miejsce na rozpoczęcie takiego projektu. Możesz użyć SO z powodzeniem, aby odpowiedzieć na konkretne pytanie (np. "Jaki jest format tablic rejestracyjnych we Francji"), ale nie jest przydatne przeprowadzanie kompleksowych badań. –

+0

@Martin: podczas gdy ja się z tobą zgadzam, poczekam na więcej informacji zwrotnej przed usunięciem pytania, myślę, że byłoby lepiej mieć jedno pytanie, takie jak ta jedna i kilka odpowiedzi dla każdego kraju niż setki pytań "kto to robi zatwierdź XXX dla YYY ". –

+1

Nawet mając tysiące pracowników i lokalny oddział, Google Checkout przegapił prawidłowy kod pocztowy dla mojego miasta w Argentynie. Byłem zmuszony użyć niewłaściwego kodu do rejestracji. –

Odpowiedz

1

Istnieje ogromna różnica między prostą i pełną weryfikacją.Często jest to niemożliwe, aby ujednolicić w całej pełni walidacji lokalizacjach, oto kilka przykładów:

  • CivilID/SSN itp numery mogą akceptowania/odrzucania wartości zastępczych wartości zagranicznych (specyficzny system), wartości historycznych itp mają 2 różne systemy sprawdzania poprawności w jednej z naszych aplikacji dla tego samego pola, w zależności od kontekstu, a inne systemy IT mogą mieć inne systemy sprawdzania poprawności.

  • Sprawdzanie poprawności kodu pocztowego może wymagać dostępu do listy prawidłowych wartości, którą należy subskrybować. W wielu krajach subskrypcja ta nie jest zautomatyzowana, a ze względu na reguły dotyczące praw autorskich redystrybucja nie jest banalna.

  • Numery telefonów mają podobny problem. Czy pozwalacie na drogie numery, numery telefonów komórkowych? Jak je wykryjesz?

Można argumentować, że prosta walidacja jest możliwe w większości przypadków - ale dla prostych walidacji, często jest to łatwiejsze w użyciu dopasowywania wzorców i niech lokalny wydział na każdym rynku określenie prawidłowych wzorców.

Występuje również problem z umową serwisową dotyczącą oprogramowania. Jeśli kupujesz oprogramowanie i chcesz go używać przez 5 lat, ważne jest, abyś mógł zmienić zasady sprawdzania poprawności, jeśli coś się zmieni. Doświadczyłem 4 zmian w systemie numerów telefonów w moim kraju, które wpłynęły na prostą walidację, np. "Liczba cyfr" i "jaka może być pierwsza cyfra".

Dlatego najlepszym rozwiązaniem jest posiadanie scentralizowanej bazy danych wzorców charakterystycznych dla ustawień regionalnych i umożliwienie administratorom modyfikowania wzorców walidacji.

0

Wikipedia zbiera license plate information, według kraju. Podobnie dla postal codes.

+0

Jest znacznie więcej do sprawdzenia poprawności niż tylko tablice rejestracyjne i kody pocztowe, niemniej jednak UPU ma znacznie lepsze zasoby (http: //www.upu. int/post_code/en/postal_addressing_systems_member_countries.shtml) w formatach kodów pocztowych. Jeśli chodzi o wpis na Wikipedii na tablicach rejestracyjnych jest bardzo ograniczony (tylko pojedyncze zdjęcia dostępne w 30 krajach). –

1

PEAR nie jest tak źle. Na przykład walidator dla Nowej Zelandii ma wiele przydatnych informacji, takich jak kody pocztowe, numery IRD, numery telefonów, numery kont bankowych: http://pear.php.net/manual/en/package.validate.validate-nz.php

Jest nadal w wersji alfa, ale obejmuje kilka krajów. Może warto się zastanowić?

+0

Nie sądzę, głównie dlatego, że metody walidacji dla Nowej Zelandii (lub dowolnego innego kraju) nie są spójne z innymi krajami: Hiszpania na przykład tylko posiada zatwierdzenie DNI (identyfikator cywilny), a Portugalia (i wiele innych) nie mieć dowolną metodę weryfikacji. Jest to prawie bezużyteczne w IMO środowiska i18n. –

+1

Widziałeś to? http://www.thomasweidner.com/flatpress/2009/09/19/zend_validate_postcode/ – Steve

+0

@Steve: To bardzo interesujące, jak mogę rzucić okiem na kod? –

0

Cóż, myślę, że wszystko to odbywa się jeden programista z tego kraju, a kilka dni reasearch & napisać walidacji .. nic specjalnego .. + jest mnóstwo informacji w wikipedii

+0

Dokładnie tak, pochodzę z Portugalii i mogę napisać całkiem niezły zestaw metod sprawdzania poprawności dla mojego kraju, ale nie wiem na przykład o Hiszpanii. Wikipedia jest dobra, a ja zrobiłem kilka fajnych prac badawczych, ale wiele jest brakujących. –

+0

tak .. ale zawsze możesz poprosić o przypadkową osobę online .. prawo .. forum, stackoverflow .. etc ..zajmuje to tylko 2 komórki mózgowe, aby to rozgryźć: P – Aviatrix

+0

Jeszcze raz, to jest sedno tego pytania, jeśli przeczytasz je dokładnie ... –