ExtendScript搜索/替换循环

时间:2018-03-28 11:33:36

标签: javascript loops adobe-indesign extendscript

我正在使用ExtendScript与InDesign进行一些简单的搜索和替换以更改GREP

如果我一个接一个地写出来,一切正常。

app.findGrepPreferences = app.changeGrepPreferences = null;
app.findChangeGrepOptions = NothingEnum.nothing;
app.findGrepPreferences.findWhat = '^~8 ';
app.changeGrepPreferences.changeTo = `~8\\t`;
myDoc.changeGrep();

但是我想整理一下并创建一个循环来运行包含搜索和查找的两个数组。

var findWhat = [ '^~8 ', '^·( |\\t)', '~S', '^ +', ' +$', '  +', '~P', '^\\t+(?=\\r)', '\\n', '\\r\\r\\r+'];

var changeTo = ['~8\\t','~8\\t',' ', '','',' ','\\r','','\\r','\\r\\r'];

for(var i = 0; i < findWhat.lenght; i++){
    app.findGrepPreferences = app.changeGrepPreferences = null;
    app.findChangeGrepOptions = NothingEnum.nothing;
    app.findGrepPreferences.findWhat = findWhat[i];
    app.changeGrepPreferences.changeTo = changeTo[i];
    myDoc.changeGrep();
}

这不会给我一个错误但它也不会改变任何东西。 有没有办法对符号集进行某种错误处理,可以为我提供一些信息?

我正在编辑ExtendScript Toolkit

中的代码

1 个答案:

答案 0 :(得分:1)

我找到了自己令人尴尬的解决方案。

循环没有循环,因为它不了解lenght的含义。
将其更改为length,运行正常......

var findWhat = [ '^~8 ', '^·( |\\t)', '~S', '^ +', ' +$', '  +', '~P', '^\\t+(?=\\r)', '\\n', '\\r\\r\\r+'];

var changeTo = ['~8\\t','~8\\t',' ', '','',' ','\\r','','\\r','\\r\\r'];

for(var i = 0; i < findWhat.length; i++){
    app.findGrepPreferences = app.changeGrepPreferences = null;
    app.findChangeGrepOptions = NothingEnum.nothing;
    app.findGrepPreferences.findWhat = findWhat[i];
    app.changeGrepPreferences.changeTo = changeTo[i];
    myDoc.changeGrep();
}