javascript- 用部分文件名替换文本

javascript- replace text with part of the file name

我正在尝试在 adobe illustrator 中创建一个脚本,用于检查文件名是否包含“ph”+5 数字。 如果找到,它将用文件名中的匹配项替换文本的一部分。

这是我目前所拥有的,我只是无法让它工作,文本被替换为“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);
}

您可以封装要用组构造替换的文本,并且由于您使用的是 String.prototype.replace,因此您可以捕获带括号的组并将回调函数作为 [= 中的第二个参数传递11=]函数。

了解更多信息 here

示例:

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});

我会试试这个:

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]);
  }
}