Walidacja formularzy - dwu członowe nazwy własne.

Odpowiedz Nowy wątek
2019-05-29 14:32
0

Witam,
wykonuje właśnie w ramach edukacyjnego projektu aplikację. Jestem na etapie walidacji danych, jest całkiem nieźle. Niestety do pełnej elegancji brakuje mi kilku rzeczy.

1) Chciałbym aby nazwy miast i adresy były wpisywane z dużej litery
2) Konieczne są polskie znaki
3) Możliwość wpisywania nazw trzy, dwu-członowych: Grot-Rowecki, Rondo Lotników Lwowskich 23/34
4) Nazwy członów z dużych liter i opcjonalne dla użytkownika przy wpisywaniu

Oto efekt mojej pracy:
Nazwisko: "^[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,60}$"
Ulica: "^[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń0-9 /]{3,60}$"

-Z dużej literki wchodzi nazwisko ale drugi człon już musi być z małej
-W przypadku adresu można wpisać np "Ulica/// 333" i też pójdzie.

Link do kodu: https://github.com/pangeon/JM[...]in/webapp/WEB-INF/profile.jsp


Sukces jest progresywną realizacją wartościowej idei w ramach cierpliwego wymiaru czasu.
edytowany 1x, ostatnio: Pangeon, 2019-05-29 14:32

Pozostało 580 znaków

2019-05-29 15:13
2

To moim zdaniem nie tak. Po pierwsze nie z dużej a z wielkiej litery. Wszystko co uzytkownik wpisze powinienes zmieniac na male litery potem albo uzyć funckji do ustawineia pierwszej litery wielkiej albo camel case ze kazdy wyraz z wielkiej ma litere. Czemu nazwisko ma miec czlon z wielkiej i malej. Moze być nazwisko Majewska-Lisek albo Marek Kowalski Nowak . im wiecej nawtykasz syfu w te walidacje tym szybciej zniecheciz uzytkownikow do rejeestracji. To po twojej stronie stoi jak dane maja byc modyfikowane a nie zeby uzytkownik mial za ciebie robic.

a to "Nazwa miasta pisana dużą literą (min 4 znaki). Możliwy odstęp" co to ma być ? Jak ktoś wpisze miasto Hel to już nie będzie mógł się zapsiać na szkolenie bo jego miasto nie ma 4 liter ? jj :) jakis MISZCZ to wymyslil :)

edytowany 1x, ostatnio: fporzo, 2019-05-29 15:45
Jak już chcesz być grammar nazi to chociaż poprawiaj dobrze. "Od Wielkiej liter" lub "Wielką literą". Pisanie "z wielkiej litery" to błąd. - TomRiddle 2019-05-29 20:05
Ta masz racje nakryles mnie na gramatycznym gwałcie - fporzo 2019-05-30 01:08

Pozostało 580 znaków

2019-05-29 16:17
2

No i w czym problem?

Nazwisko:

([A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,30}-[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,30}|[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,60})

edytowany 1x, ostatnio: Freja Draco, 2019-05-29 16:21

Pozostało 580 znaków

2019-05-29 17:26
0

Taka formułka:
[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,30}$-[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,30}$|[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,60}$
działa lepiej :) Dzięki za inspiracje. Rozumiem użycie operatora lub.

Niestety rezultat nadal jest niepełny:
można wpisać: np. Ceresz \... Kopeć ... Warecka + Michoń

O Helu nie pomyślałem :P


Sukces jest progresywną realizacją wartościowej idei w ramach cierpliwego wymiaru czasu.
Nie każ mi szukać miast na dwie litery tylko :) - fporzo 2019-05-29 17:27
Jest takie miasto np. Uć :P - Pangeon 2019-05-29 17:31
Pamietaj zeby wykreslic Sosnowiec - fporzo 2019-05-30 01:00

Pozostało 580 znaków

2019-05-29 17:32
1

jquery-1.11.2 - nie ma jakiegoś nowszego?
zamiast bootstrapValidator może lepiej https://validatejs.org który ma prawie wszystkie walidacje z adresami też


Pozostało 580 znaków

2019-05-29 20:07
1
Pangeon napisał(a):

Taka formułka:
[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,30}$-[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,30}$|[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,60}$
działa lepiej :) Dzięki za inspiracje. Rozumiem użycie operatora lub.

Bój się boga, takie regexpy to się pisało 20 lat temu. Jak chcesz dopuścić znaki akcentowane to zależnie od języka skorzystaj z ::letter:: lub \p{L}.


Pozostało 580 znaków

2019-05-29 20:55
2

Poza tym , jeśli już mamy szukać dziury w całym, to chciałem zauważyć, że mogą się trafić osoby z "dziwnymi", ale niepolskimi znaczkami w nazwiskach - czy to obcokrajowcy, czy ktoś z importowanym przodkiem. Jak się wpisze np. niemieckie nazwisko z jakimś umlautem (ä, ö czy ü) to taki regex też nie przepuści :P


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say
edytowany 2x, ostatnio: cerrato, 2019-05-29 21:38

Pozostało 580 znaków

2019-05-29 20:59
2
cerrato napisał(a):

Poza tym , eśli już mamy szukać dziury w całym, to chciałem zauważyć, że mogą się trafić osoby z "dziwnymi", ale niepolskimi znaczkami w nazwiskach - czy to obcokrajowcy, czy ktoś z importowanym przodkiem. Jak się wpisze np. niemieckie nazwisko z jakimś umlautem (ä, ö czy ü) to taki regex też nie przepuści :P

Agree, nie ma nic gorszego niż formularz który myśli że jest mądrzejszy niż Ty. Zwłaszcza że jak dopuszczasz polskie znaki tzn ze masz Unicode w bazie i wszystko Ci jedno czy to "ą" czy niemieckie "a" z akcentem.


Popieram. Dlatego moim zdaniem nie ma co przesadzać z walidacją, a jedynie trzeba to odpowiednio zabezpieczyć przed wrzuceniem do bazy. Jeśli ktoś wpisze "EWgsdkfsaqw-0qij" to jego problem ;) - cerrato 2019-05-29 21:00

Pozostało 580 znaków

2019-05-29 21:02
0

Tak w ogóle najlepiej użyć słownika, dopiero potem regexa a na koniec wywalić komunikat, że niepoprawna nazwa. Przecież na upartego da się znaleźć słownik nazwisk, ulic itp.

Pozostało 580 znaków

2019-05-29 21:06
2
Pangeon napisał(a):

Taka formułka:
[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,30}$-[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,30}$|[A-ZŁŻŹĄĘŚĆÓ][a-złżźąęćśóń]{2,60}$
działa lepiej :) Dzięki za inspiracje. Rozumiem użycie operatora lub.

Niestety rezultat nadal jest niepełny:
można wpisać: np. Ceresz \... Kopeć ... Warecka + Michoń

O Helu nie pomyślałem :P

Podobno system IBMu sie kiedyś wywalił, bo przyjechała Chinka o nazwisku Y


Microsoft I bez chinki sie co chwila wywala - fporzo 2019-05-30 01:01

Pozostało 580 znaków

2019-05-29 21:36
2

Podobno system IBMu sie kiedyś wywalił, bo przyjechała Chinka o nazwisku Y

E tam, Y to jeszcze nic. Naprawdę prze**ne ma Jennifer Null :D

https://thenextweb.com/inside[...]-null-is-tough-for-computers/


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say
A to nie ta Anastasakis, co jej dziura wszystko przyjmie? - PerlMonk 2019-05-29 21:38
totalnie nie rozumiem, o czym do mnie piszesz :P - cerrato 2019-05-29 21:42
Jeniffer Aniston, aktorka taka no! :D - PerlMonk 2019-05-29 21:48
hahahahaha rozwalies mnie na maxa :) - fporzo 2019-05-30 01:02

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0