许多联系人管理程序都这样做 - 你输入一个名字(例如,"John W. Smith"),它会自动将其分解为:
名字:约翰
中间名: W.
姓:史密斯
同样,它也会找出像"简·史密斯夫人"和"约翰·多伊博士"这样的事情.也正确(假设您允许名称中包含"prefix"和"suffix"等字段).
我认为这是人们想要做的相当普遍的事情......所以问题是......你会怎么做?有一个简单的算法吗?也许正则表达式?
我正在使用.NET解决方案,但我并不挑剔.
更新:我感谢没有简单的解决方案可以涵盖所有边缘案例和文化...但是,为了论证,你需要说明你需要这个名字(填写表格 - 比如说,税收或其他政府表格 - 是一种情况,您必须将名称输入固定字段,无论您是否喜欢),但您不一定要强迫用户将其名称输入到离散字段中(减少输入=更容易新手用户).
你想让程序"猜测"(尽可能最好)在第一个,中间的,最后一个等等.如果可以的话,看看Microsoft Outlook如何为联系人做这个 - 它让你输入名字,但是如果你需要澄清,你可以打开一个额外的小窗口.我会做同样的事情 - 给用户提供窗口以防他们想要以离散的部分输入名称 - 但允许在一个框中输入名称并进行涵盖大多数常见名称的"最佳猜测" .