[ID CC-CC2022] Удаление лишнего конца абзаца во фреймах

  • Автор темы Автор темы aleksasha
  • Дата начала Дата начала

aleksasha

Топикстартер
20 лет на форуме
Сообщения
316
Реакции
5
Напомните, плз, кусок кода который удаляет все такие лишние концы абзаца в конце всех фреймов в публикации.

118990
 
Грепом работает так:
"\r$" меняем на "".
Хотел еще скриптом. :)
 
Подскажите, почему эта конструкция не работает?

JavaScript:
with (app) {
    if (documents.length < 1) {
        alert('No open documents!');
        exit();
    }
    
    for (i=0; i<app.activeDocument.stories.length; i++) 
        var myStory = app.activeDocument.stories[i];
        while (myStory.characters.lastItem().contents == '\r')
        {
        myStory.characters.lastItem().remove();
        }
}
 
  • Спасибо
Реакции: veretragna
Наверное, имелось в виду такое?
JavaScript:
 for (i=0; i<app.activeDocument.stories.length; i++)
     {
        var myStory = app.activeDocument.stories[i];
        while (myStory.characters.lastItem().contents == '\r')
        {
        myStory.characters.lastItem().remove();
        }
     }
 
  • Спасибо
Реакции: aleksasha
Грепом работает так:
"\r$" меняем на "".

Это вам удалит ещё и знаки абзаца перед таблицами, и кое-какие другие случаи.
Правильно так:
\r\Z

Или лучше для удаления вообще всех пробельных символов в конце текста:
\s+\Z

Это выражение означает "содержимое равно: обратный слэш с буквой r".
 
  • Спасибо
Реакции: aleksasha
обратный слэш с буквой r
 
Я в курсе, спасибо.
Но оно означает знак абзаца в греп-выражении.
А вы сравниваете '\r' непосредственно со строковым значением contents.
 
А вы сравниваете '\r' непосредственно со строковым значением contents.
Не совсем так. Строковое значение последнего символа строки сравнивается с возвратом каретки
 
Да, действительно, в этом я был неправ.