Antwort auf: Aber wie sprech ich in deinem Code zb. jene Textstellen an die gleich sind?
Brauchst Du in Deinem Fall nicht.
Wird mit match() eine Übereinstimmung gefunden, ist die Sache klar. Wir brauchen nicht kopieren. Wird keine Übereinstimmung gefunden, müssen wir kopieren. Das kann mit einem if()-Statement ausgedrückt werden. Sogar ohne else{}, wenn's so formuliert ist:
if(myResult === null){/*Kopieranweisung*/};
Antwort auf: Der Code sagt mir ja nur, ob der Inhalt der Textrahmen gleich ist oder nicht.
Diese Aussage ist falsch oder etwas unpräzise. Der Code sagt Dir, ob es eine Übereinstimmung des Inhalts der Story des Quell-Textrahmens gibt verglichen mit dem Inhalt der Story des Ziel-Textrahmens. Diese Übereinstimmung muss nicht vollständig sein.
Hier ein paar Beispiele zum Durchtesten im ESTK. Funktioniert auch ganz ohne InDesign:
//Quelle ist der Buchstabe "a".
//Ziel ist "Abracadabra"
var myString = "Abracadabra";
var myResult = myString.match(RegExp("a"));
$.writeln(myResult);
$.writeln(myResult.constructor.name);
//Jetzt kommt der Modifier "g" (global search) ins Spiel,
//wenn man nach mehreren Vorkommen von "a" suchen will:
var myResult = myString.match(RegExp("a","g"));
$.writeln(myResult);
$.writeln(myResult.constructor.name);
//Zusätzlich auch der Modifier "i" für (case-insensitive search):
var myResult = myString.match(RegExp("a","gi"));
$.writeln(myResult);
$.writeln(myResult.constructor.name);
//Um auch mal ein Negativbeispiel zu kreieren:
//Quelle ist der Buchstabe "a".
//Ziel ist "brcdbr" ("Abracadabra" ohne "a" oder "A")
var myString = "brcdbr";
var myResult = myString.match(RegExp("a","gi"));
$.writeln(myResult);
//$.writeln(myResult.constructor.name); //Hier gibt's eine Fehlermeldung: "null ist kein Objekt"
//Und hier die Fallunterscheidung:
if(myResult === null){$.writeln("Das muss noch ergänzt werden.")};
else{$.writeln("Nö. Wir sind mal faul. Wir brauchen nichts zu tun.")};
//Hier die Fallunterscheidung mit einem Treffer:
var myString = "brcdbra";
var myResult = myString.match(RegExp("a","gi"));
$.writeln(myResult);
$.writeln(myResult.constructor.name);
if(myResult === null){$.writeln("Das muss noch ergänzt werden.")};
else{$.writeln("Nö. Wir sind mal faul. Wir brauchen nichts zu tun. Eigentlich überflüssig diese Zeile.")};
Antwort auf: Mit dem Jongware InDesign JavaScript Reference Guide
http://www.jongware.com/idjshelp.html komm ich nicht wirklich weiter, da ich vom Skriptschreiben eher wenig Ahnung habe... :)
Dann wird's schwierig und langwierig. Du solltest Dir auf jeden Fall ein geeignetes Buch zum Thema "JavaScript" und "Reguläre Ausdrücke" zulegen und durcharbeiten. Zunächst mal unabhängig von dem, was Adobe sonst noch InDesign-Spezifisches in ExtendScript umgesetzt hat.