Просто начните исследовать "чудеса" регулярного выражения. Будучи тем, кто учится на проб и ошибок, я действительно борется, потому что мои испытания вызывают непропорциональное количество ошибок... Мои эксперименты на PHP с помощью ereg().
В любом случае. Я работаю с именами и фамилиями отдельно, но теперь использую одно и то же регулярное выражение. До сих пор я:
^[A-Z][a-zA-Z]+$
Строка длины, начинающаяся с капитала и имеющая только буквы (столица или нет) для остальных. Но там, где я разваливаюсь, приходится сталкиваться с особыми ситуациями, которые могут в значительной степени встречаться где угодно.
- Перефилированные имена (Worthington-Smythe)
- Имена с апостофами (D'Angelo)
- Имена с пробелами (Ван дер Хэмптон) - столики в середине, которые могут потребоваться или не быть требуемыми, намного превосходят мои интересы на этом этапе.
- Совлокальные имена (Бен и Джерри)
Может быть, есть и другое имя, о котором я не думаю, но я подозреваю, могу ли я обдумать это, я могу добавить к нему. Я уверен, что будут случаи, когда более чем одна из этих ситуаций возникает с одним именем.
Итак, я думаю, что в нижней строке должно быть, чтобы мое регулярное выражение также принимало пробел, дефисы, амперсанды и апострофы, но не в начале и конце имени, чтобы быть технически корректным.