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]);
}
}
我正在尝试在 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]);
}
}