11

次を使用して、文字列の最初の文字を大文字にすることができます。

str:gsub("^%l", string.upper)

これを変更して、文字列内のすべての単語の最初の文字を大文字にするにはどうすればよいですか?

4

3 に答える 3

1

リストされている別の回答では、アポストロフィを含む単語で一貫性のない結果が得られます。

str = string.gsub(" "..str, "%W%l", string.upper):sub(2) 単語の最初の文字であるかどうかに関係なく、各アポストロフィの後の最初の文字を大文字にします

例: 「here's a long list of words」は「Here'S A Long List Of Words」を出力します。

これを修正するために、ここで賢い解決策を見つけました

このコードを利用する:

function titleCase( first, rest )
   return first:upper()..rest:lower()
end

string.gsub(str, "(%a)([%w_']*)", titleCase)

その奇妙なバグによって引き起こされた問題を修正します

于 2014-03-21T01:51:16.977 に答える