Предложения по исправлению имен людей, чтобы они были написаны заглавными буквами правильно - PullRequest
3 голосов
/ 26 октября 2009

Пользователи нашего сайта часто вводят много мусора для информации об имени и адресе. например, все буквы CAPS, все строчные буквы и т. д.

Выглядит намного лучше, если мы исправим это дело, но кто-нибудь может предложить хороший способ сделать это. Простой подход состоит в том, чтобы просто использовать каждое слово в их названии с заглавной буквы, но это не помогает при работе с некоторыми именами. Вот несколько примеров ...

  • Боб Макдональд
  • Сара О'Коннор
  • МР ПИТ СМИТ

и вот что я хотел бы превратить их в

  • Боб Макдональд
  • Сара О'Коннор
  • Мистер Пит Смит

Я использую PHP, если это поможет.

Ответы [ 4 ]

9 голосов
/ 26 октября 2009

Оставь как есть. Если пользователи не уважают себя настолько, чтобы правильно написать свои имена, почему это должно вас волновать?

Сказав это, напишите подпрограмму для постобработки имен, она будет обрабатывать некоторые вездесущие случаи.

  • Прописать первые буквы слов, исключая некапитализированные слова, такие как "von"
  • Ищите конкретные шаблоны и пользовательские обновления совпадающих слов (например, используйте третью букву, если слово начинается с "mc")

Из-за сложности проблемы, я думаю, вам придется прибегнуть к ручному редактированию имен после того, как алгоритм коррекции сработает. Пользователь регистрируется, имя подвергается последующей обработке, затем добавляется в некоторую очередь модерирования, где вы проверяете его и обновляете его по мере необходимости, прежде чем оно будет использовано, и, возможно, будет напечатано на счетах и ​​этикетках участков. Конечно, если вы уверены, что знаете, что делаете.

7 голосов
/ 26 октября 2009

Нет правильного способа сделать это, или, говоря более конкретно, каждый выбранный вами метод будет неправильным.

Иногда О'Коннор обычно пишется его владельцем как О'Коннор. Или, в качестве альтернативы, кто-то мог предположить, что это был О'Коннор, а на самом деле это Оконнор, или наоборот. Иногда Макдональдс - Макдональд. На законных основаниях вы можете иметь имя «Боб Смит», где все буквы строчные.

Я думаю, что исправление only , которое я хотел бы сделать, это заменить ALL-CAPS на заглавные буквы. В противном случае, просто оставьте это в покое, потому что нет никакого способа отличить грубого орфографиста от того, кто решил, что хочет сумасшедшее имя.

4 голосов
/ 26 октября 2009

И, конечно, есть такие люди, как я, с заглавной буквой в середине их имени. Вы оскорбите меня, если попытаетесь «исправить» это. Как сказал «Developer Art», если люди не уважают себя настолько, чтобы правильно написать свои имена, это не твоя задача - исправить это.

3 голосов
/ 26 октября 2009

Вы можете использовать $name = ucwords(strtolower($name)); в PHP, чтобы приблизить вас к тому, что вы хотите.

...