2009-10-26 4 views
3

웹 사이트 사용자는 종종 이름과 주소 정보에 대해 많은 쓰레기를 입력합니다. 예 : 모든 대문자, 소문자 등 모두사람들의 이름을 정확하게 대문자로 바꿔달라고 제안하십시오.

사례를 수정하면 훨씬 좋아 보이지만 아무도이 작업을 수행하는 좋은 방법을 제안 할 수는 없습니다. 간단한 접근법은 각 단어의 이름을 대문자로 표기하는 것이지만 일부 이름을 다룰 때 실패합니다. 다음은 몇 가지 예 ...이다

  • 밥 맥도날드
  • 사라 오코너
  • MR 피트 SMITH

여기에 내가

    로 변환하고자하는 것입니다
  • 밥 맥도널드
  • 사라 오코너
  • Mr Pete Smith

도움이된다면 PHP를 사용하고 있습니다.

+0

네덜란드어에서 IJ는 대문자 사용 목적을위한 단일 문자로 간주됩니다. IJmuiden과 같은 이름은 Ijmuiden이 아닙니다 ... ;-)이 솔루션도 이러한 종류의 이름을 알고 있어야합니까? 그렇지 않다면 모든 단어의 첫 글자를 제외한 모든 글자를 소문자로 만드십시오. –

답변

7

올바른 방법이 없거나 더 구체적으로 말하면 선택한 모든 방법이 잘못 될 수 있습니다.

때로는 오코너가 오코너 (O'connor)라는 소유자의 철자가 될 수도 있습니다. 아니면 실제로 누군가 O'Connor라고 가정 할 수도 있습니다. 실제로 O'Connor 일 때 O'Connor라고 가정 할 수도 있고, 그 반대 일 수도 있습니다. 때때로 맥도날드는 맥도날드입니다. 합법적으로 모든 단어가 소문자 인 "밥 스미스"라는 이름을 가질 수 있습니다.

수정 사항은 모든 문자를 첫 문자 대문자로 변경하는 것입니다. 그렇지 않으면, 혼자 남겨주세요. 왜냐하면 미친 이름을 원한다고 결정한 사람과 cruddy speller를 구별 할 길이 없기 때문입니다.

+0

나는 모든 대문자를 확인하고 그 일을하는 것에 대한 귀하의 제안을 좋아합니다. –

9

그대로 둡니다. 사용자가 자신의 이름을 정확하게 쓸만큼 자신을 존중하지 않으면 왜 신경 써야합니까?

그런데 이름을 후 처리하기 위해 서브 루틴을 작성하면 유비쿼터스 케이스를 처리 할 수 ​​있습니다.

  • 는 "폰"특정 패턴 및 사용자 정의 업데이트 일치하는 단어에 대한
  • 봐 같은 비 capitalizable 단어를 제외한 단어의 첫 글자를 대문자로
  • (예를 들어 단어가 "MC"로 시작하면 세 번째 글자를 대문자로)

문제의 복잡성으로 인해 수정 알고리즘이 작동 한 후에 이름을 수동으로 수정해야 할 것이라고 생각합니다. 사용자가 등록하면 이름을 사후 처리 한 다음 확인하고 필요에 따라 업데이트 한 일부 검토 대기열에 추가하여 사용하기 전에 인보이스 및 소포 목록에 인쇄 할 수 있습니다. 물론, 당신이 무엇을하고 있는지를 확신한다면.

3

PHP에서 $name = ucwords(strtolower($name));을 사용하면 원하는 결과를 얻을 수 있습니다.

+1

이것은 내가 생각하고 있던 접근 방식 이었지만 정확성에 관한 다른 의견들은 모두 함께 게시하는 것을 멈추게했습니다. 이렇게하면 일반적인 미국 인구의 경우 90 %가 될 것입니다. 그런 다음 조회 테이블을 부딪 히면이 문제가 좀 더 해결 될 수 있습니다. 어쩌면 모두 대문자 또는 소문자를 모두 포함하는 이름에 대해서만 정확한 대소 문자를 구분할 수 있습니다. 그냥 생각. – ChronoFish

+0

이름이 모두 소문자이거나 모두 대문자 인 경우 검색을 수행합니다. 그렇다면 이것을하십시오. 그들이 사건의 혼합을 사용했다면, 그들은 나를 위해 일한 것으로 간주하고 손대지 마십시오. –

4

물론 이름처럼 중간에 대문자가있는 사람이 있습니다. 너가 그것을 고치려고하면 너는 나를 모욕 할 것이다.'Developer Art'와 같이 사람들이 자신의 이름을 정확하게 쓸만큼 자신을 존중하지 않는다면, 그것을 고치는 것이 당신의 일이 아닙니다.

관련 문제