Рекомендации по исправлению имен людей, чтобы они правильно писались с заглавной буквы.

StackOverflow https://stackoverflow.com/questions/1625274

  •  06-07-2019
  •  | 
  •  

Вопрос

Пользователи нашего сайта часто вводят много мусора в качестве информации об имени и адресе.например, все ЗАГЛАВНЫЕ буквы, все строчные буквы и т. д.

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

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

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

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

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

Это было полезно?

Решение

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

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

я думаю только исправление, которое я бы сделал, это изменить ЗАГЛАВНЫЕ буквы на заглавные буквы.В противном случае просто оставьте это в покое, потому что невозможно отличить грубого орфографиста от человека, который решил, что ему нужно сумасшедшее имя.

Другие советы

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

Однако напишите подпрограмму для постобработки имен, она справится с некоторыми распространенными случаями.

  • Начинайте слова с заглавной буквы, исключая слова, которые не пишутся с заглавной буквы, например «фон».
  • Ищите конкретные шаблоны и соответствующие слова с пользовательским обновлением (например,напишите третью букву с заглавной буквы, если слово начинается с «mc»)

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top