想要在保存之前从文件名中删除各种字符串

Want to remove various strings from filename before save

我有一个为 Photoshop 编写的 JSX 脚本,在该脚本的末尾,在保存之前,我想检查各种字符串的文件名,如果它们存在则将其删除。到目前为止,我所写的只是删除了它遇到的数组中的第一个元素——在下面的例子中,它遇到了正则表达式,然后继续保存。

遇到的文件名示例是:"PRNT-AB-Navy Blush Oil pallet painting-18x24--REV 27x21.jpg"

我想要的结果名称是:"AB-Navy Blush Oil pallet painting"

所以我需要一些帮助来了解如何删除任何给定文件名中存在的数组的所有元素?

    var array = ["PRNT-", "--REV ", "-REV ", ".jpg", ".tif", ".psd", new RegExp(/\d+[x]\d+/g)];
    var docName = activeDoc.name
        for (var i = array.length; i >= 0; i--) {
            var newName = docName.replace(array[i], '');
        }

谢谢!

欢迎来到 Stack Overflow。

我还没有弄清楚你的文件名约定,但这会用你想要的替换字符串,而不必遍历每个元素。

var s = "PRNT-AB-Navy Blush Oil pallet painting-18x24--REV 27x21.jpg";

alert(replace_filename(s));

function replace_filename(str)
{
  var rexp = new RegExp(/PRNT-|-\d*x\d*|--REV\s+\d*x\d*|.jpg|.tif.psd/gim);
   return str.replace(rexp, "");
}

// AB-Navy Blush Oil pallet painting