【问题标题】:TextInfo.ToTitleCase doesn't work properly, any better solutions?TextInfo.ToTitleCase 不能正常工作,有更好的解决方案吗?
【发布时间】:2009-11-16 15:02:52
【问题描述】:

我正在尝试使我的文章标题格式正确,我目前正在使用TextInfo.ToTitleCase 进行格式设置。它在大多数工作上都做得很好,但并不那么完美。

例如:

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

Microsoft also use above as the example,这显然是一个已知问题。我要做的是手动为“a”、“and”、“or”等单词写一个列表(我不确定我能不能得到一个完整的列表),会不会是这个问题的最佳解决方案?

【问题讨论】:

    标签: .net asp.net cultureinfo


    【解决方案1】:

    这是一个我信任并自己使用过的来源的 JavaScript 实现:http://ejohn.org/blog/title-capitalization-in-javascript/

    source code 中,他列出了您(我相信正确)假设您需要的仅小写例外。

    当然,工作是将其转换为 ASP.NET 可以在服务器端使用的东西,但是逻辑已经投入了很多思考,这应该可以帮助你最终滚动。

    祝你好运!

    【讨论】:

    • 我忘了提到他基于 Perl 中的某些内容,并且您可能会在该页面上的 cmets 中找到其他几种不同语言的端口...
    【解决方案2】:

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

    芝加哥风格手册建议:

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

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

    3. 小写所有文章,坐标 连词(“and”、“or”、“nor”)、 和介词不管 长度,当它们不是 第一个字或最后一个字。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      相关资源
      最近更新 更多