有人知道一些关于如何正确大写人名的代码/规则吗?
(这些可能不正确,只是一些示例名称以及大写字母如何工作)
这似乎是一场失败的战斗......
如果有人对何时以及如何将名字大写有一些代码或规则,请告诉我。
在我看来,唯一明智的处理方法是让用户告诉你他们的名字应该如何大写。任何自动方案都会惹恼某人。
只要告诉他们你是老派。这使得它变得简单并且 100% 正确:
- JOHN SMITH
- JOHAN VAN RENSBURG
- DERRICK VON GOGH
- RUBY DE LA FUENTE
- PETER MACLAURIN
- GARRY MCDONALD
同样的逻辑也有助于解决许多国际化问题。
还有Python 中的实现,它基于此算法。基本思想是将名称转换为标题大小写,然后根据巨大的异常查找表检查名称。
但 Jonathan Leffler 所说的确实是正确的:除非您有转换预先存在的未格式化数据的要求,否则自动大写将会出现错误(特别是因为大写规则因语言鸿沟、文化鸿沟、因语言鸿沟而导致的名称更改而异)移民或人们只是喜欢以某种特定的方式大写自己的名字)。
我查找了需要特殊处理的名字。当找到不区分大小写的匹配项时,我使用查找值。这并没有解决使用与“接受的”大写不匹配的大小写的人的问题。它允许我/用户根据需要添加名称。我找不到我的代码,但我确实从 http://www.census.gov/.
获取了姓氏