我正在尝试使我的文章标题格式正确,我目前正在TextInfo.ToTitleCase
用于格式化。它在大多数工作上都做得很好,但并不是那么完美。
例如:
- 原字符串:战争与和平
- 预期结果:战争与和平
- 实际结果:战争与和平
微软也以上面为例,这显然是一个已知问题。我要做的是手动为“a”、“and”、“or”等单词写一个列表(我不确定我能不能得到一个完整的列表),会不会是这个问题的最佳解决方案?
我正在尝试使我的文章标题格式正确,我目前正在TextInfo.ToTitleCase
用于格式化。它在大多数工作上都做得很好,但并不是那么完美。
例如:
微软也以上面为例,这显然是一个已知问题。我要做的是手动为“a”、“and”、“or”等单词写一个列表(我不确定我能不能得到一个完整的列表),会不会是这个问题的最佳解决方案?
这是来自我信任并自己使用过的来源的 JavaScript 实现:http: //ejohn.org/blog/title-capitalization-in-javascript/
在源代码中,他有一个您(我相信正确)假设您需要的小写例外列表。
当然,这项工作是将其转换为 ASP.NET 可以在服务器端使用的东西,但是逻辑已经投入了很多思考,这应该可以帮助您完成最终滚动的任何事情。
祝你好运!
我还没有在提供的库中看到解决此问题的方法......它看起来是扩展方法的绝佳候选者。有趣的是,它比单词列表稍微复杂一些,并且有一些变化。
芝加哥风格手册建议:
始终将第一个和最后一个单词大写。
将所有名词、代词、形容词、动词、副词和从属连词(“as”、“because”、“although”)大写。
小写所有冠词、并列连词(“and”、“or”、“nor”)和介词,无论长度如何,当它们不是第一个词或最后一个词时。
不定式中的“to”小写。
最后一种情况似乎特别困难,因为您需要解析以确定“to”是否用于不定式。