Reply To: Stripping out the initial common numbers

#97994
Mike Dean
Member

Ok, ok, I’ll quit being lazy. :)

This has been updated to attempt to find all number series using GREP and update.


(function(){
app.findGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = "(d+, )((d)[, ]*)+";
var found = app.activeDocument.findGrep();

for (var i=found.length-1; i>=0; i--){
var newText = removeCommonPrefix(found[i].contents.split(", ")).join(", ");
$.writeln("Replacing " + found[i].contents + "with " + newText)
found[i].contents = newText;
}

function removeCommonPrefix(numbers) {
var updatedNumbers =[];
var i = numbers.length -1;
while (i >= 1) {
var currentNumber = numbers[i];
var currentNumberPrefix = numbers[i].toString().slice(0, 3);
var preceedingNumberPrefix = numbers[i -1].toString().slice(0, 3);
var numberSuffix = numbers[i].toString().slice(3);
if (currentNumberPrefix == preceedingNumberPrefix) {
var number = numberSuffix;
} else {
var number = currentNumber;
}
updatedNumbers.unshift(number);
i--;
}
//the first number will always need the initial 3, so at the end of the loop add it to the start
updatedNumbers.unshift(numbers[0]);
return updatedNumbers;
}
})();

This article was last modified on September 12, 2017

Comments (0)

Loading comments...