2014-10-04 76 views
0

我一直在努力处理一段时间以来的脚本。问题是,当我像文本运行脚本:Google Apps脚本自动大写

Hi. apples are amazing. 

我想要只在苹果的一个资本,而是文本出来为:

Hi. Apples Are Amazing. 

下面是代码:

function caps() 
{ 
var body = DocumentApp.getActiveDocument().getBody(); 
var text = body.editAsText() 
var caps = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
var lower = "abcdefghijklmnopqrstuvwxyx"; 
//while (() != null) { 
//var search = text.findText('. a') 
//var start = replace - 1 
//text.deleteText(start, replace) 
//text.insertText(start, " A")//} 
for(var i=0; i<caps.length; i++) 
{ 
    var nextCaps = caps.charAt(i); 
    var nextLower = lower.charAt(i); 

    while (text.findText('. ' + nextLower) != null) 
    { 
    Logger.log(nextLower) 
    Logger.log(nextCaps) 

    var search = text.findText('. ' + nextLower) 
    var replace = search.getEndOffsetInclusive() 
    var start = replace - 1 
    text.deleteText(start, replace) 
    text.insertText(start, " " + nextCaps) 

    } 
//var nextChar = caps.charAt(i); 

//Logger.log(nextLower) 
} 
} 

基本上,代码查找,并用 “A”。(同样用b,c,d和等)替换它 “一个”。如果有人能帮助我,这将非常感激。

回答

2

下面的代码遵循您的示例,您希望在第一句结束后首字母大写首字母。只要是这种情况,这个正则表达式和替换就会对任何字母做这件事。

var str = 'Hi. apples are amazing.'; 

var reg = /\.\s./; 
function replacement(match) { 
    return match.toUpperCase(); 
} 

str = str.replace(reg, replacement); 
Logger.log(str); 
+0

谢谢!我也喜欢这样做的简短的代码量!如果我能评价它,我会评价它5分之10! – 2014-10-05 05:26:10