2017-08-27 48 views
1

有人可以帮我解决这个问题我用Photoshop脚本进行文件命名?用小数填充零的整数文件名

我想要做的是添加填充零到我的文件名有整数和小数。这是我到目前为止有:

//Add leading zeros 
function zeroPad(num) { 
    var tmp = num.toString(); 
    while (tmp.length < 3) {tmp = '0' + tmp;} 
    return tmp; 
} 

的问题是,这个只适用于只有整数文件。如果我的文件名有一个小数,它会一起忽略它。

EX:有了这个脚本:doc36.jpg> doc036.jpg,但doc40.560.jpg> doc40.560.jpg

感谢一大堆!

+0

它不会垫第二个数字,因为它的'length'是> 3 ...什么是您预期的结果? – ishegg

+0

好吧,因为我对图像进行了平均处理,并使用HSB亮度级别命名文件,我的文件名可能如下所示:50.jpg,19.57.jpg或119.004.jpg。所以我正在寻找更有凝聚力的内容(用于文件分类),并且希望用零填充数字。我不想像上面那样命名文件,而是希望它是050.jpg,009.57.jpg。最后一个会被忽略,因为它在小数点前已经有三个整数。 –

+0

另外,当我将它改为6时,它所做的只是向文件中添加更多的零。因此,而不是050.jpg,它会给我000050.jpg并继续忽略小数。 –

回答

2

您只需填充数字的整数部分即可获得预期结果。所以,检查它是否有点,如果有,分割它,只填充第一部分。如果没有,垫整数:

function zeroPad(num) { 
 
    var stringRep = num.toString(); 
 
    if (stringRep.indexOf(".") !== -1) { 
 
     var tmp = stringRep.split("."); 
 
     while (tmp[0].length < 3) {tmp[0] = '0' + tmp[0];} 
 
     return tmp[0]+"."+tmp[1]; 
 
    } 
 
    else { 
 
     while (stringRep.length < 3) {stringRep = '0' + stringRep;} 
 
     return stringRep; 
 
    } 
 
} 
 
console.log(zeroPad(10)); 
 
console.log(zeroPad(1.3)); 
 
console.log(zeroPad(110)); 
 
console.log(zeroPad(10.4)); 
 
console.log(zeroPad(11234.4));

+0

功能正常!非常感谢。唯一的问题是它只需要功能而不是控制台部分,所以我删除了它,因为photoshop在代码中不能使用它。再次,谢谢你。 :D –

+1

太棒了!是的,'console.log()'语句只是作为一个演示。可以把它们拿走。我认为这个功能可以更清洁,更“漂亮”,所以请继续努力:) – ishegg