を前の回答は、その後、ここにある:
function onEdit(e) {
if (typeof e.value != 'object') {
e.range.setValue(titleCase(e.value));
}
}
function titleCase(str) {
return str.toString().split(/\b/).map(function(word) {
return word ? word.charAt(0).toUpperCase() + word.slice(1).toLowerCase() : '';
}).join('');
}
これは、明示的にタイトルケース、例えばに任意の更新のセルのテキストを変換します「大きな茶色の熊」は「大きな茶色の熊」になります。あなたが最初の手紙のみを活用し、手つかずの各単語の残りの部分を残すことを希望する場合は
は、あなたが.toLowerCase上記の関数では()一部を削除することができます。そして、「大きな茶色の熊」という文章は、「大きな茶色の熊」になるでしょう。
タイトルケースは、this answerから取得されました。
EDIT:
function titleCase(str) {
var isApostrophe = false;
return str.toString().split(/\b/).map(function(word) {
var result = word ? (!isApostrophe ? word.charAt(0).toUpperCase() : word.charAt(0).toLowerCase()) + word.slice(1).toLowerCase() : '';
isApostrophe = (word == "'");
return result;
}).join('');
}
:アポストロフィをconaining、単語の大文字部分をスキップするには、内語アポストロフィのための具体的な回避策導入し、このいずれかで、元
タイトルケース機能を置き換えることができます
これで、「BIG 'Brown Bear」というテキストが「A Big' Brown Bear」に変換されるようになりました。
EDIT 2: 特定の列のみにこのルールを適用するには、このバージョンでのonEdit機能を置き換えることがあります。
function onEdit(e) {
if (typeof e.value != 'object') {
if ([3, 5, 10, 11, 12, 13].indexOf(e.range.columnStart)<0) return;
e.range.setValue(titleCase(e.value));
}
}
あなたは 'proper'機能を試してみましたか? –
[JavaScriptを使用して文字列をタイトルケースに変換する]の複製があります(https://stackoverflow.com/questions/196972/convert-string-to-title-case-with-javascript) –