TextInfo.ToTitleCase无法正常运行,有什么更好的解决方案吗?

时间:2009-11-16 15:02:53

标签: .net asp.net cultureinfo

我正在努力使我的文章标题格式正确,我目前正在使用TextInfo.ToTitleCase进行格式化。它在大多数工作中表现都很好,但并不是那么完美。

例如:

  • 原始字符串:战争与和平
  • 预期成果:战争与和平
  • 实际结果:战争与和平

Microsoft also use above as the example,这显然是个已知问题。我要做的是手工编写一个列表,例如“a”,“and”,“或”等等(我不确定我是否可以获得完整列表),它是否是这个问题的最佳解决方案?

2 个答案:

答案 0 :(得分:1)

以下是来自我信任的来源的JavaScript实现,并使用了我自己:http://ejohn.org/blog/title-capitalization-in-javascript/

source code中,他有一个小写的例外列表,你(我相信这是正确的)假设你需要它。

当然,工作是将它转换为ASP.NET可以使用服务器端的东西,但逻辑已经有很多想法,它可以帮助你最终滚动。

祝你好运!

答案 1 :(得分:0)

我在提供的库中没有看到这个问题的解决方案......它看起来很适合extension method。有趣的是,它比单词列表稍微复杂一些,并且有一些变化。

芝加哥风格手册建议:

  1. 始终将第一个和第一个大写 最后一句话。

  2. 将所有名词,代词, 形容词,动词,副词和 从属连词(“as”, “因为”,“虽然”)。

  3. 小写所有文章,协调 连词(“和”,“或”,“也不是”), 和介词无论如何 长度,当他们不是 第一个或最后一个字。

  4. 将不定式中的“to”小写。

  5. 最后一种情况似乎特别困难,因为您需要解析以确定是否在不定式中使用“to”。