2017-08-27 3 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にします。小数点の前にすでに3つの整数があるので、最後のものは無視されます。 –

+0

また、6に変更したときに、ファイルに0を追加するだけでした。だから、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

関連する問題