3

私たちのウェブサイトのユーザーは、名前と住所の情報のためにたくさんのゴミを入力することがよくあります。たとえば、すべて大文字、すべて小文字など。

私たちが彼らのためにケースを修正するならば、それはずっと良く見えます、しかし誰でもこれをする良い方法を提案することができます。簡単なアプローチは、名前の各単語を大文字にすることですが、一部の名前を処理する場合は失敗します。ここにいくつかの例があります...

  • ボブ・マクドナルド
  • サラ・オコナー
  • MRピート・スミス

これが私がそれらを変換したいものです

  • ボブ・マクドナルド
  • サラ・オコナー
  • ピート・スミス氏

役立つ場合はPHPを使用しています。

4

4 に答える 4

9

そのままにしておきます。ユーザーが自分の名前を正しく書くのに十分なほど自分自身を尊重していない場合、なぜ気にする必要がありますか?

そうは言っても、名前を後処理するためのサブルーチンを作成すると、いくつかのユビキタスなケースを処理できます。

  • 「von」のような大文字ではない単語を除いて、単語の最初の文字を大文字にします
  • 特定のパターンを探し、一致する単語をカスタム更新します(たとえば、単語が「mc」で始まる場合は3番目の文字を大文字にします)

問題は複雑であるため、修正アルゴリズムが機能した後は、名前を手動で編集する必要があると思います。ユーザーが登録すると、名前は後処理されてからモデレートキューに追加され、使用される前に確認して必要に応じて更新され、請求書や小包ラベルに印刷される場合があります。もちろん、あなたが自分が何をしているのかを知っていると確信しているなら。

于 2009-10-26T14:52:27.663 に答える
7

これを行う正しい方法はありません。具体的には、選択したすべての方法が間違っています。

時々、オコナーはその所有者によってオコナーと綴られることがあります。あるいは、実際にはオコナーであるのにオコナーであると誰かが想定したり、その逆の場合もあります。時々マクドナルドはマクドナルドです。合法的に「bobsmith」という名前を付けることができます。ここでは、すべての文字が小文字です。

私が行う唯一の修正は、ALL-CAPSをFirstLetterCapitalizationに変更することだと思います。それ以外の場合は、そのままにしておきます。これは、クレイジーな名前が必要だと判断した人と、雑然としたスペラーを区別する方法がないためです。

于 2009-10-26T14:58:07.807 に答える
4

そしてもちろん、名前の真ん中に大文字が入っている私のような人もいます。あなたがそれを「修正」しようとすると、あなたは私を侮辱するでしょう。「DeveloperArt」が言ったように、人々が自分の名前を正しく書くのに十分なほど自分自身を尊重していない場合、それを修正するのはあなたの仕事ではありません。

于 2009-10-26T15:00:41.047 に答える
3

PHPで使用$name = ucwords(strtolower($name));して、必要なものに近づけることができます。

于 2009-10-26T14:57:56.043 に答える