【问题标题】:Capitalize first and third letter in names like McArthur or McMinn将 McArthur 或 McMinn 等名称的第一个和第三个字母大写
【发布时间】:2013-01-29 14:06:56
【问题描述】:

有没有办法识别复合名称并正确大写第一个和第三个字符?

虽然使用 CSS 更改大小写是一项微不足道的任务,但在处理复合名称时,我还没有找到任何直接的解决方案。

想到的一件事是使用某种查找来识别 LeBare、McDonalds、McArthur 等名称,然后应用一些逻辑来改变情况……任何知道其他可行解决方案的人那可能就在那里,所以我不必重新发明轮子(可以这么说)?

注意:用户将直接在文本框中输入这些名称。无法保证用户不会输入 mcMinn 或 macArthur 等内容。话虽如此,我也注意到带有“Le”和“La”前缀的名称(这些名称可能有拉丁/西班牙根源,我可以错了)。

【问题讨论】:

  • 你问过谷歌吗?
  • 是的,我有,没有谷歌没有给我答案。感谢您的检查。

标签: c# asp.net css html


【解决方案1】:

你不能只使用 CSS。有几个“刻字”jQuery 插件,例如http://letteringjs.com/。您可以根据 jQuery 中的名称放置自己的逻辑,并使用诸如

之类的字母库设置每个字母的样式
.target.char1, .target.char3 {
  text-transform:uppercase;
}

【讨论】:

  • 谢谢,会检查一下。
【解决方案2】:

在此过程中要记住的一件事是,您还可以使用“麦克阿瑟”的情况,它是第一个和第四个字符。根据您从哪里提取数据(用户输入、数据库等),我会说按原样使用它可能是一种选择。但是,如果名称以全小写形式出现,那么您可能必须编译一个已知名称前缀列表并对其进行检查。我的意思是,除非名称全部以小写形式出现并显示给用户,否则我只会使用原始格式。

【讨论】:

  • 甚至前缀也会很棘手,因为“Mack”不应该是“MacK”,而“Mackay”有时只会是“MacKay”。
  • 好点!想知道是否有人已经编制了这些已知化合物名称的列表。
  • 用户将直接在文本框中输入这些名称。无法保证用户不会输入 mcMinn 或 macArthur 等内容。
  • @Robert 然后使用用户实际给你的任何东西。对于如何正确书写他们的名字,他们可能比你有更好的想法。
  • @Robert:毫无疑问,用户可以让事情变得非常复杂,但我认为 GIGO 原则在这里发挥了作用;如果用户给你垃圾,就给他们同样的垃圾。在框旁边放置一个工具提示或标签,说明有关正确格式的内容甚至可能是有益的。我相当肯定,尽管您始终可以将名称的第一个字母大写,所以请坚持使用。
猜你喜欢
  • 2017-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 2013-09-01
  • 1970-01-01
  • 2023-03-31
  • 2018-07-08
相关资源
最近更新 更多