很多联系人管理程序都这样做 – 你键入一个名称(例如,“约翰·史密斯”),它会自动将其内部分为:
名字:约翰
中间名:W.
姓:史密斯
同样,它阐述了诸如“简·史密斯夫人”和“约翰·多·约翰博士”正确的(假设你允许字段像“前缀”和“后缀”的名称)。
我认为这是一个相当普遍的事情,人们会想做…所以问题是…你会怎么做?有没有一个简单的算法为此?也许是正则表达式?
我在.NET解决方案后,但我不挑剔。
更新:我明白,没有一个简单的解决方案,这涵盖所有边缘情况和文化…但让我们说,为了争论,你需要的名称片断(填写表格 – 如说,税或其他政府表格 – 是一种情况,你必须输入固定字段中的名称,无论你喜欢与否),但你不一定要强迫用户输入他们的名字到离散字段(较少打字=更容易新手用户)。
你可能想让程序“猜”(尽可能最好的)什么是第一,中间,最后,等等。如果可以,看看Microsoft Outlook如何联系人 – 它让你键入名称,但是,如果你需要澄清,有一个额外的小窗口,你可以打开。我会做同样的事情 – 给用户的窗口,以防他们想输入离散片段的名称 – 但允许在一个框中输入名称,并做一个“最好的猜测”,涵盖最常见的名称。