[ID CS4-CS6] Замена верхних индексов по порядку нумерации

  • Автор темы Автор темы Lexander
  • Дата начала Дата начала
JavaScript:
#target indesign

function clearGrepFindChangePreferences () {
    app.findGrepPreferences = NothingEnum.NOTHING;
    app.changeGrepPreferences = NothingEnum.NOTHING;
}

function sortContents (str) {
    arr = str.replace(/ +/gim, '').split(',');
    arr.sort( function (a, b) {return parseInt(a) - parseInt(b)}  );
    return arr.join(', ');
}

function main () {
    if (!app.documents.length) {
        return false;
    }
    if (!app.selection.length || !app.selection[0].hasOwnProperty('parentStory')) {
        return false;
    }
    var doc = app.activeDocument;
    var story = app.selection[0].parentStory;
    clearGrepFindChangePreferences();
    app.findGrepPreferences.position = Position.SUPERSCRIPT;
    app.findGrepPreferences.findWhat = '(\\d{1,}\\,?\\ ?)+';
    var texts = story.findGrep(true);
    clearGrepFindChangePreferences();
    for (var i = 0; i < texts.length; i++) {
        texts[i].contents = sortContents(texts[i].contents.toString());
    }
}

main();
 
  • Спасибо
Реакции: Валера1966 и andrejK
Это неспортивно '))' скриптом любой дурак упорядочит а ты попробуй грепом
 
  • Спасибо
Реакции: Валера1966
Чисто из спортивного интереса: например, так.

Первая замена:
([56789]),([1234]) на $2,$1

Вторая:
([34]),([12]) на $2,$1

Третья:
([789]),([56]) на $2,$1

Четвёртая:
([9]),([78]) на $2,$1

Пятая:
(2),(1) на $2,$1

Шестая:
(4),(3) на $2,$1

Седьмая:
(6),(5) на $2,$1

Восьмая:
(8),(7) на $2,$1

Всё это, разумеется, в заданном формате символов.
Повторять, пока что-то заменяется.
 
Последнее редактирование:
вот в тундре есть таки отзывчивые люди!
 
бросил родную тайгу Олег???
 
Ну тогда ты верной дорогой идешь! А там глядишь и в южноамериканской стране скриптописания до лета порядок наведут!
 
там же батушев застолбил
 
Если речь идёт о том, чтобы увеличить или уменьшить на все данные на одно и то же число (про умножить и разделить не стану упоминать), то вот здесь обсуждался прекрасный скрипт как раз для таких целей.
 
  • Спасибо
Реакции: Linxy