Royal Flash
-=MaestrO=-
Задача: проверить корректность ввода имени на 3-х языках: английский, русский ИЛИ украинский. "ИЛИ" не зря написано заглавными буквами, так как, например, в английском имени не должны встречаться русские или украинские буквы, в украинском и английском имени может быть апостроф и т.п. и т.д.
Ничего лучше примера ниже, я не придумал:
Возможно кто-то подскажет, как в последней части регулярки, проверяющей украинские имена, не использовать весь алфавит, а обойтись только интервалами? Что то на подобии: диапозон [а-яєїі] кроме [^ыэ...].
И если заглянуть еще глубже - как описать ситуацию, когда, например, в английском имени может встречаться сразу тире и апостроф?
Ничего лучше примера ниже, я не придумал:
PHP:
preg_match('!(?:^[а-яё]+[\-]?[а-яё]+$)|(?:^[a-z]+[\-\`]?[a-z]+$)|(?:^[абвгґдеєжзиіїйклмнопрстуфхцчшщьюя]+[\-\`]?[абвгґдеєжзиіїйклмнопрстуфхцчшщьюя]+$)!i', $name);
И если заглянуть еще глубже - как описать ситуацию, когда, например, в английском имени может встречаться сразу тире и апостроф?