繁体   English   中英

ExtendScript搜索/替换循环

[英]ExtendScript search/replace loop

我正在将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的代码

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

循环不会循环,因为它不了解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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM