将 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 等名称的第一个和第三个字母大写的主要内容,如果未能解决你的问题,请参考以下文章

第19章 定义资源

错误:名称后跟 '::' 必须是类或命名空间名称

颤振'LatLng'未定义

如何检查图像资产是不是存在,然后将其用作圆形头像或在圆形头像中写下姓名的第一个字母

将名称替换为第一个字母powershell

C#:将当前用户/IP/计算机名称等输出到标签[重复]