Próbuję stworzyć dobre wyrażenie regularne dla nazwiska ludzi.

Powinien być ważny, jeśli nazwisko to:

abcd

abcd'efg

abcd-efg

abcd, .fg

Itp...

Muszę też przetestować, czy symbole nie powtarzają ... więc na przykład:

abcd'''Efg

abcd - ',

Są nieprawidłowe, ale jedna:

abcd, .fg

Może być ważny.

W tej chwili właśnie to stworzyłem:

^[a-z .',-_]+$

A teraz próbuję sprawdzić wszystkie podwójne symbole, ale nie mogę iść z powodzeniem.

-3
Ayeye Brazo 12 sierpień 2014, 17:20

2 odpowiedzi

Najlepsza odpowiedź

Jeśli po przeczytaniu Ten wnikliwy post przez Amal Murali i nadal chcesz to zrobić za pomocą Regexa, zobacz to:

/^(?![^'\-_\n]*['\-_][^'\-_\n]*['\-_])[a-z .',-_]+$/m

Wyświetl regex demo!

1
Community 23 maj 2017, 12:11

To zły pomysł. Nie ma międzynarodowej listy dozwolonych znaków, których ludzie mogliby użyć w swoich imionach. Niektóre nazwiska zawierają nawet symbole Unicode - nie będzie możliwe napisać regex, który doskonale potwierdziłby ich poprawnie. Nawet jeśli możesz wymyślić regex, może być zbyt ogólny, że nie byłoby skuteczne.

Przeczytaj ten artykuł, dlaczego nie powinieneś tego robić: Programowcy fałszów wierzą w imiona

3
Amal Murali 12 sierpień 2014, 13:26