将 McArthur 或 McMinn 等名称的第一个和第三个字母大写
Posted
技术标签:
【中文标题】将 McArthur 或 McMinn 等名称的第一个和第三个字母大写【英文标题】:Capitalize first and third letter in names like McArthur or McMinn 【发布时间】:2013-01-29 14:06:56 【问题描述】:有没有办法识别复合名称并正确大写第一个和第三个字符?
虽然使用 CSS 更改大小写是一项微不足道的任务,但在处理复合名称时,我还没有找到任何直接的解决方案。
想到的一件事是使用某种查找来识别 LeBare、McDonalds、McArthur 等名称,然后应用一些逻辑来改变情况……任何知道其他可行解决方案的人那可能就在那里,所以我不必重新发明***(可以这么说)?
注意:用户将直接在文本框中输入这些名称。无法保证用户不会输入 mcMinn 或 macArthur 等内容。话虽如此,我也注意到带有“Le”和“La”前缀的名称(这些名称可能有拉丁/西班牙根源,我可以错了)。
【问题讨论】:
你问过谷歌吗? 是的,我有,没有谷歌没有给我答案。感谢您的检查。 【参考方案1】:你不能只使用 CSS。有几个“刻字”jQuery 插件,例如http://letteringjs.com/。您可以根据 jQuery 中的名称放置自己的逻辑,并使用诸如
之类的字母库设置每个字母的样式.target.char1, .target.char3
text-transform:uppercase;
【讨论】:
谢谢,会检查一下。【参考方案2】:在此过程中要记住的一件事是,您还可以使用“麦克阿瑟”的情况,它是第一个和第四个字符。根据您从哪里提取数据(用户输入、数据库等),我会说按原样使用它可能是一种选择。但是,如果名称以全小写形式出现,那么您可能必须编译一个已知名称前缀列表并对其进行检查。我的意思是,除非名称全部以小写形式出现并显示给用户,否则我只会使用原始格式。
【讨论】:
甚至前缀也会很棘手,因为“Mack”不应该是“MacK”,而“Mackay”有时只会是“MacKay”。 好点!想知道是否有人已经编制了这些已知化合物名称的列表。 用户将直接在文本框中输入这些名称。无法保证用户不会输入 mcMinn 或 macArthur 等内容。 @Robert 然后使用用户实际给你的任何东西。对于如何正确书写他们的名字,他们可能比你有更好的想法。 @Robert:毫无疑问,用户可以让事情变得非常复杂,但我认为 GIGO 原则在这里发挥了作用;如果用户给你垃圾,就给他们同样的垃圾。在框旁边放置一个工具提示或标签,说明有关正确格式的内容甚至可能是有益的。我相当肯定,尽管您始终可以将名称的第一个字母大写,所以请坚持使用。以上是关于将 McArthur 或 McMinn 等名称的第一个和第三个字母大写的主要内容,如果未能解决你的问题,请参考以下文章