Sugerencias sobre la fijación de nombres de personas para que se capitalicen correctamente

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

  •  06-07-2019
  •  | 
  •  

Pregunta

Los usuarios de nuestro sitio web a menudo escriben mucha basura para el nombre y la información de la dirección. por ejemplo, todas las MAYÚSCULAS, todas las minúsculas, etc.

Se ve mucho mejor si arreglamos el caso para ellos, pero ¿alguien puede sugerir una buena manera de hacerlo? Un enfoque simple es poner en mayúscula cada palabra en su nombre, pero esto falla cuando se trata de algunos nombres. Aquí hay algunos ejemplos ...

  • bob mcdonald
  • Sarah O'Connor
  • MR PETE SMITH

y esto es en lo que me gustaría transformarlos

  • Bob McDonald
  • Sarah O'Connor
  • Sr. Pete Smith

Estoy usando PHP si me ayuda.

¿Fue útil?

Solución

No hay una forma correcta de hacer esto, o para decirlo más específicamente, cada método que elija estará equivocado.

A veces O'Connor será deletreado habitualmente por su propietario como O'connor. O, alternativamente, alguien podría haber asumido que era O'Connor cuando en realidad es Oconnor, o viceversa. A veces McDonald es Mcdonald. Legalmente podría tener el nombre '' bob smith '', donde todas las letras están en minúsculas.

Creo que la solución solo que haría sería cambiar ALL-MAYÚSCULAS a Primera letra mayúscula. De lo contrario, solo déjelo en paz, porque no hay forma de distinguir un deletreo rudo de alguien que decidió que quería un nombre loco.

Otros consejos

Déjalo como está. Si los usuarios no se respetan lo suficiente como para escribir sus nombres correctamente, ¿por qué debería importarles?

Habiendo dicho eso, escriba una subrutina para procesar los nombres, se encargará de algunos casos ubicuos.

  • Poner en mayúscula las primeras letras de las palabras, excluyendo las palabras que no se pueden escribir en mayúscula como "von",
  • Busque patrones específicos y palabras coincidentes de actualización personalizada (por ejemplo, ponga en mayúscula la tercera letra si la palabra comienza con " mc ")

Debido a la complejidad del problema, creo que tendría que recurrir a la edición manual de nombres después de que el algoritmo de corrección haya funcionado. Un usuario se registra, el nombre se procesa posteriormente y luego se agrega a una cola de moderación donde lo verifica y actualiza según sea necesario antes de que se use y tal vez se imprima en facturas y etiquetas de paquetes. Por supuesto, si está seguro de saber lo que está haciendo.

Y, por supuesto, hay personas como yo con una letra mayúscula en el medio de su nombre. Me insultarás si intentas "corregirlo". Como dijo 'Developer Art', si las personas no se respetan lo suficiente como para escribir sus nombres correctamente, no es su trabajo arreglarlo.

Puede usar $ name = ucwords (strtolower ($ name)); en PHP para acercarse a lo que desea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top