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.
2 odpowiedzi
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
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