2009-11-16 71 views
1

我試圖使我的文章標題格式良好,我目前使用TextInfo.ToTitleCase進行格式化。它在大多數工作上表現良好,但並不完美。TextInfo.ToTitleCase無法正常工作,有什麼更好的解決方案?

例如:

  • 原始字符串:戰爭與和平
  • 預期結果:戰爭與和平
  • 實際結果:戰爭與和平

Microsoft also use above as the example ,這顯然是一個已知的問題。我要做的是爲手寫一個列表,如「a」,「and」,「or」等(我不知道我能否得到一個完整的列表),它會是這個問題的最佳解決方案?

回答

1

這裏是我信任的來源一個JavaScript實現,並使用自己:http://ejohn.org/blog/title-capitalization-in-javascript/

source code,他有你(我相信正確的)假設你只需要小寫的例外列表。

這項工作將轉化爲ASP.NET可以使用serverside的東西,當然,但邏輯已經有了很多想法,它應該可以幫助你處理最終的任何事情。

祝你好運!

+0

我忘了提及他基於Perl的東西,還有其他幾個不同語言的端口,您可能會在該頁面的註釋中找到... – Funka 2009-11-16 22:49:39

0

我還沒有在提供的庫中看到這個問題的解決方案......它看起來很適合extension method。有趣的是,它比單詞列表稍微複雜一些,並且有一些變化。

風格的芝加哥手冊表明這一點:

  1. 總是大寫第一個和 硬道理。

  2. 所有大寫名詞,代詞,形容詞 ,動詞,副詞,和 從屬連詞( 「是」, 「因爲」, 「雖然」)。

  3. 小寫的所有文章,協調 連詞(「與」,「或」,「也不是」), 和介詞無論 長度,當它們比 第一個或最後一個字等。

  4. 小寫不定式中的「to」。

最後一種情況似乎特別困難,因爲您需要解析以確定「to」是否用於不定式。

相關問題