0

私はJavascriptにかなり慣れていないので、チュートリアルに従ってフォーラムを読むだけでこれまでのところうまくいくことができましたが、これはしばらくの間本当に困惑しました.

基本的に、私は 7 桁を含む数字のカウンターが欲しかったのですが、いくつかのことを見つけましたが、本当に意味のあるものは何もなかったので、これを書きました:

imgNumber++;
if (imgNumber < 10){function add(number){return '00000' + number}};
if (imgNumber > 10 && imgNumber < 100){function add(number){return '0000' + number}};
if (imgNumber > 100 && imgNumber < 1000){function add(number){return '000' + number}};
if (imgNumber > 1000 && imgNumber < 10000){function add(number){return '00' + number}};
if (imgNumber > 10000 && imgNumber < 100000){function add(number){return '0' + number}};
if (imgNumber > 100000 && imgNumber < 1000000){function add(number){return '' + number}};

私が知る限り、それは機能します。私の質問は次のとおりです。これに関する問題を予測していますか。そうでない場合、これをすべて書くためのよりクリーンな方法はありますか?

すべての返信に感謝します。

乾杯、コリン

4

3 に答える 3

2

すべてのプログラミング機能と同様に、あなたの友達です。google で padding zeros javascript を検索したところ、このサイトに誘導されました。

function pad(number, length) {
       var negative = number < 0;
       var str = '' + Math.abs(number);
       while (str.length < length) {
           str = '0' + str;
       }
       if(negative) str = '-' + str;
    return str;
}

これを使用すると、数値標準を生成し、それを保存/出力する前に、次の関数を実行します。

pad(1,7);
于 2011-03-07T04:41:06.087 に答える
1

ワンライナー:

var output = sprintf("%07d", 30);

私を信じてください、JavaScript (および他の言語) で多くの時間を節約できます。実装はhttp://sprintf.googlecode.com/files/sprintf-0.7-beta1.jsでダウンロードできます

今日までに、このコードはすぐに機能します。おそらく、ライブラリの src を変更して、より更新する必要があります。

<script type="text/javascript" src="http://sprintf.googlecode.com/files/sprintf-0.7-beta1.js"> </script>

<script type="text/javascript" >
   alert(sprintf("%04d",4));
</script>

詳細については、こちらに加えて、この便利なメソッドの他の実装があります。

于 2011-03-07T04:46:24.223 に答える
0

追加する桁数の指標として、数値の対数 (基数 10) を使用してみませんか。

log(N) が 0 以上 1 未満の場合、N は 1 桁の数値です。
log(N) が 1 以上 2 未満の場合、N は 2 桁であり、以下同様です。

私は実際には JavaScript でコーディングしていないので、ログ機能にアクセスできるかどうかはわかりませんが、アクセスできる場合、これは結果を取得するための非常に簡潔な方法です。

ジョン・ドナー

于 2011-03-07T04:45:58.980 に答える