Estoy tratando de crear un script en Adobe Illustrator que verificará si un nombre de archivo contiene números "ph" +5. Si se ha encontrado, reemplazará una parte de un texto con la coincidencia del nombre del archivo.
Esto es lo que tengo hasta ahora, simplemente no puedo hacer que funcione, el texto se reemplaza con "null"
var doc = app.activeDocument; var name = doc.name; var match = name.match(/ph\d{5}/); for (i = 0; i < doc.textFrames.length; i++) { doc.textFrames[i].contents = doc.textFrames[i].contents.replace(/ph00000/gi, match); }Puede encapsular el texto que desea reemplazar con construcciones de grupo y, dado que está usando String.prototype.replace , puede capturar el grupo entre paréntesis y pasar la función de devolución de llamada como segundo argumento en su función .replace .
Lea más sobre esto aquí
Ejemplo:
const textString = "This is ph54321 or ph12345"; const newString1 = textString.replace(/(ph)\d{5}/gi, function (matches, p1) { return p1 + "appended"; // "This is phappended or phappended" }); const newString2 = textString.replace(/ph(\d{5})/gi, function (matches, p1) { return "BIGPH" + p1; // "This is BIGPH54321 or BIGPH12345" }); console.log({newString1}); console.log({newString2});Yo probaría esto:
var doc = app.activeDocument; var match = doc.name.match(/ph\d{5}/); if (match != null) { for (i = 0; i < doc.textFrames.length; i++) { doc.textFrames[i].contents = doc.textFrames[i].contents.replace(/ph00000/gi, match[0]); } }