Skip to content

Simple Find And Change Grep

Fabian Morón Zirfas edited this page Jun 13, 2025 · 2 revisions
/*
    a basic find and change script not using fc queries
    */

/*
    This is the text we are going to change
    look at the double white spaces and all that tab return stuff
    
    */
var the_text_to_change =
	"An einem Morgen später Regenfälle\r\t" +
	"kam Sierva María de Todos los Ángeles\t\r" +
	" im Zeichen des Schützen als Siebenmonatskind\r\t" +
	" recht und schlecht auf die Welt.\t\r " +
	"\t\tSie erinnerte an eine farblose Kaulquappe\r" +
	" \t\tund wäre fast von der um den Hals  gewickelten  Nabelschnur\r" +
	" \t\tstranguliert worden.";
var doc = app.documents.add(); // create a doc

var tf = doc.pages.item(0).textFrames.add({
	/* Make a text frame in the first page with that text */
	geometricBounds: [12.7, 12.7, 297 - 12.7, 210 - 12.7],
	contents: the_text_to_change,
});

app.findGrepPreferences = NothingEnum.nothing; // now empty the find what field!!! that's important!!!
app.changeGrepPreferences = NothingEnum.nothing; // empties the change to field!!! that's important!!!

// some settings
app.findChangeGrepOptions.includeFootnotes = true;
app.findChangeGrepOptions.includeHiddenLayers = false;
app.findChangeGrepOptions.includeLockedLayersForFind = false;
app.findChangeGrepOptions.includeLockedStoriesForFind = true;
app.findChangeGrepOptions.includeMasterPages = true;

var greps = [
	{ findWhat: "  +", changeTo: " " }, //     Find all double spaces and replace with single spaces.
	{ findWhat: "\r ", changeTo: "\r" }, //     Find all returns followed by a space And replace with single returns.
	{ findWhat: " \r", changeTo: "\r" }, //     Find all returns preceded by a space and replace with single returns.
	{ findWhat: "\t\t+", changeTo: "\t" }, //     Find all double tab characters and replace with single tab characters.
	{ findWhat: "\r\t", changeTo: "\r" }, //     Find all returns followed by a tab character and replace with single returns.
	{ findWhat: "\t\r", changeTo: "\r" }, //     Find all tabs followed by a return character and replace with single returns.
];

// loop thru the greps object
for (var i = 0; i < greps.length; i++) {
	// this is like entering the find what text in the UI
	app.findGrepPreferences.findWhat = greps[i].findWhat;
	// this is like entering text in the change to
	app.changeGrepPreferences.changeTo = greps[i].changeTo;
	// and now hit the button
	doc.changeGrep();

	app.findGrepPreferences = NothingEnum.nothing; // now empty the find what field!!! that's important!!!
	app.changeGrepPreferences = NothingEnum.nothing; // empties the change to field!!! that's important!!!
}
// we are done

Home

Clone this wiki locally