Suggerimenti su come correggere i nomi delle persone in modo che siano scritti in maiuscolo correttamente

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

  •  06-07-2019
  •  | 
  •  

Domanda

Gli utenti del nostro sito Web digitano spesso molti rifiuti per il nome e le informazioni sull'indirizzo. ad esempio, tutte le maiuscole, tutte le minuscole ecc.

Sembra molto meglio se risolviamo il caso per loro, ma qualcuno può suggerire un buon modo per farlo. Un approccio semplice è solo quello di scrivere in maiuscolo ogni parola nel loro nome, ma questo fallisce quando si tratta di alcuni nomi. Ecco alcuni esempi ...

  • bob mcdonald
  • sarah o'connor
  • MR PETE SMITH

ed ecco cosa vorrei trasformarli in

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

Sto usando PHP se aiuta.

È stato utile?

Soluzione

Non esiste un modo corretto per farlo, o per dirlo in modo più specifico, ogni metodo scelto sarà sbagliato.

A volte O'Connor viene di solito scritto dal suo proprietario come O'connor. O in alternativa qualcuno avrebbe potuto supporre che fosse O'Connor quando in realtà è Oconnor, o viceversa. A volte McDonald è Mcdonald. Puoi legalmente avere il nome "bob smith", dove tutte le lettere sono minuscole.

Penso che la unica correzione che vorrei fare sia cambiare TUTTO MAIUSCOLO in maiuscolo prima lettera. Altrimenti, lascialo da solo, perché non c'è modo di distinguere un rude speller da qualcuno che ha deciso di volere un nome folle.

Altri suggerimenti

Lascialo com'è. Se gli utenti non si rispettano abbastanza da scrivere correttamente i loro nomi, perché dovresti preoccupartene?

Detto questo, scrivere una subroutine per post-elaborare i nomi, gestirà alcuni casi onnipresenti.

  • Metti in maiuscolo le prime lettere di parole escludendo le parole non capitalizzabili come " von "
  • Cerca schemi specifici e aggiorna le parole con corrispondenza personalizzata (ad esempio, maiuscola per la terza lettera se la parola inizia con " mc ")

A causa della complessità del problema, penso che dovresti ricorrere alla modifica manuale dei nomi dopo che l'algoritmo di correzione ha funzionato. Un utente si registra, il nome viene postelaborato, quindi aggiunto a una coda di moderazione in cui lo si controlla e lo si aggiorna secondo necessità prima che venga utilizzato e magari stampato su fatture ed etichette dei pacchi. Naturalmente, se sei sicuro di sapere cosa stai facendo.

E, naturalmente, ci sono persone come me con una lettera maiuscola nel mezzo del loro nome. Mi insulterai se provi a "correggerlo". Come ha detto "Developer Art", se le persone non si rispettano abbastanza da scrivere correttamente il proprio nome, non è compito tuo risolverlo.

Puoi usare $ name = ucwords (strtolower ($ name)); in PHP per avvicinarti a ciò che desideri.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top