Как проверить имена людей? - Питон / Джанго - PullRequest
2 голосов
/ 29 марта 2011

Я хочу создать валидатор для полных имен для одной из моих форм.

К сожалению, я не уверен, что лучший способ - это не так тривиально, как:

if not char in string.letters + " .'":
    raise ValidationError("...")

Думал, что сработает регулярное выражение, но \w, [:alpha:], [a-zA-Z] на самом деле не захватывают специальные символы.

Примеры названий:

  • Tiësto

  • Мари Жозеф

  • Мари Франсуаза

  • Хосе де Рибас


Есть идеи?

Святой ... звучит так, будто я открыл банку с червями! Спасибо за отличные ответы.

Ответы [ 4 ]

12 голосов
/ 29 марта 2011

Не.

Пожалуйста, внимательно прочитайте это: Программисты лжи верят в имена .

2 голосов
/ 29 марта 2011

Не думаю, что это хорошая идея.

Какие имена вы хотели бы исключить? Не существует международного списка разрешенных символов для имен, и нет особых причин запрещать использование определенных символов.

1 голос
/ 29 марта 2011

Лично я не стал бы беспокоиться о проверке имен, я думаю, что существует очень много возможностей, которые очень сложно поддерживать. Если бы вы могли придумать регулярное выражение, я думаю, оно было бы настолько общим, что не было бы эффективным. Единственное, что я могу считать ценным, это исключить такие вещи, как @ # $ % ^.

Просто убедитесь, что вы экранируете символы, если чье-то имя Fooalert ('lala'), это нормально, но убедитесь, что оно не проанализировано.

0 голосов
/ 29 марта 2011

В зависимости от вашей версии python это может быть re.UNICODE, который вы ищете?

http://docs.python.org/library/re.html#re.UNICODE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...