2014-10-04 7 views
0

Я боролся со сценарием, над которым я работал некоторое время. Проблема заключается в том, что, когда я запустить сценарий с текстом вроде:Скрипт Google Apps Auto Capitalize

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". (то же самое с Ь, с, 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

Спасибо! Мне также нравится короткий и простой код, необходимый для этого! Если бы я мог оценить его, я бы оценил его 10 из 5! –

Смежные вопросы