Okay, czytałem o regex cały dzień teraz i nadal nie rozumiem tego poprawnie. Próbuję sprawdzić nazwę, ale funkcje, które mogę znaleźć w Internecie, używają tylko [a-zA-Z]
, pozostawiając znaki, które muszę zaakceptować.Regex dla nazw ze znakami specjalnymi (Unicode)
Po prostu potrzebuję wyrażenia regularnego, które sprawdza, czy nazwa zawiera co najmniej dwa słowa, i że nie zawiera liczb ani znaków specjalnych, takich jak !"#¤%&/()=...
, jednak słowa mogą zawierać znaki takie jak æ, é, Â itd. .
przykładem przyjętą nazwą będzie „John Elkjærd” lub „Andre Svenson”
niezgłoszeniowe przyjętą nazwą będzie „Hans” „H nn Andersen” lub "Martin Henriksen !"
Jeśli jest to ważne, używam strony klienta funkcji javascript .match()
i chcę używać tylko "negatywnej" strony serwera php: preg_replace()
. (usuwanie niepasujących znaków).
Każda pomoc będzie mile widziana.
Aktualizacja:
Ok, dzięki Alix Axel's answer mam ważną rolę w dół, z boku jeden serwer.
Ale jak sugeruje strona z LightWing's answer, nie mogę znaleźć nic na temat obsługi Unicode dla javascript, więc skończyłem z pół rozwiązaniem dla klienta, po prostu sprawdzając co najmniej dwa słowa i minimum 5 znaków takich jak to:
if(name.match(/\S+/g).length >= minWords && name.length >= 5) {
//valid
}
alternatywą byłoby określić wszystkie znaki unicode, jak sugerowano w shifty's answer, które może skończyć się robi coś takiego, wraz z powyższego rozwiązania, ale to jest trochę niepraktyczny chociaż.
można opracować je np –
@ Amit Gupta, dzięki, zrobiłem. :) –