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

时间:2017-01-25 17:36:39

标签: javascript arrays jsx photoshop-script

我有一个我为Photoshop编写的JSX脚本,在这个脚本的最后,在保存之前,我想检查各种字符串的文件名并删除它们(如果存在的话)。到目前为止我所写的内容只删除了它遇到的数组中的第一个元素 - 在下面的情况下它会击中正则表达式,然后继续保存。

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

我想要的名称是:" AB-Navy Blush Oil托盘画"

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

欢迎使用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