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

aleksasha

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

118990
 

aleksasha

Топикстартер
15 лет на форуме
Сообщения
316
Реакции
5
Грепом работает так:
"\r$" меняем на "".
Хотел еще скриптом. :)
 

aleksasha

Топикстартер
15 лет на форуме
Сообщения
316
Реакции
5
Подскажите, почему эта конструкция не работает?

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 183
Реакции
10 843
Наверное, имелось в виду такое?
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

К.Т.

Участник
Сообщения
323
Реакции
337
Грепом работает так:
"\r$" меняем на "".

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

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

Это выражение означает "содержимое равно: обратный слэш с буквой r".
 
  • Спасибо
Реакции: aleksasha

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 183
Реакции
10 843
обратный слэш с буквой r
 

К.Т.

Участник
Сообщения
323
Реакции
337
Я в курсе, спасибо.
Но оно означает знак абзаца в греп-выражении.
А вы сравниваете '\r' непосредственно со строковым значением contents.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 183
Реакции
10 843
А вы сравниваете '\r' непосредственно со строковым значением contents.
Не совсем так. Строковое значение последнего символа строки сравнивается с возвратом каретки
 

К.Т.

Участник
Сообщения
323
Реакции
337
Да, действительно, в этом я был неправ.