2015-03-01 3 views
0

Я пытаюсь создать скрипт, который выделяет предварительно определенные ключевые слова в выбранном тексте в gdoc. Функция вызвана кнопкой menuclick. Мне нужно 1. просеивать выделенный текст по слову и сравнивать их с ключевыми словами. 2. доступ и манипулировать словами-атрибуты, такие как FONTCOLOR и FontStyle (жирный шрифт и т.д ..)GDocs: выделить ключевые слова в SelectedText

До сих пор мне удалось сделать 1. (хотя и в довольно неудобной манере)

function highlightKeywords() 
{ 
    var selection = DocumentApp.getActiveDocument().getSelection(); 

    if (selection) //not empty 
    { 
    var elements = selection.getSelectedElements(); 

    // for each element (= text line) 
    for (var i = 0; i < elements.length; i++) 
    { 
     var textLine = elements[i].getElement().asText().getText(); 
     var words = []; 
     words = textLine.split(" "); 

     //for each word... 
     //for each keyword.. 
      //compare: word = keyword ? 
    } 

    DocumentApp.getUi().alert('Highlighting keywords done!'); 
    } 
    else 
    { 
    DocumentApp.getUi().alert('Please select some text to be highlighted!'); 
    } 
} 

Проблема 2., я не знаю, как получить доступ и манипулировать атрибутами слова в gdoc.

Каким будет ваш подход к выполнению этой задачи?

ответ

0

Для изменения атрибута, полужирный, например, можно использовать функцию setBold (startOffset, endOffsetInclusive, выделены жирным шрифтом) для переменной TextLine, содержащему результат «GetText()» https://developers.google.com/apps-script/reference/document/text#setBold(Integer,Integer,Boolean)

для этого просто нужен индекс слова для «startOffset» и длина слова для endOffsetInclusive

здесь вы можете найти пример того, как получить индекс каждого повторения определенного слова в строке. http://www.w3schools.com/jsref/jsref_regexp_lastindex.asp

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