2017-02-16 5 views
1

私は数字の配列を持ち、そのうちのいくつかは先行ゼロを持っています。先行ゼロを失うことなく文字列にするにはどうすればよいですか?Javascriptで文字列にするときに先行ゼロを保存するにはどうすればいいですか?

var array = [10, 00002, 30, 400, 5000]; 
array[1].toString; // would be 2 instead of 0002 as JS drops leading zeros 

私は他のソリューション(JavaScript Number preserve leading 0JavaScript: Keeping the leading zero in a numberJavaScript Number preserve leading 0を)見ている、と彼らはすべての数の文字列を作ることをお勧めします。

私の場合、配列の数値はユーザーによって提供されるので、.toStringを通過すると先行ゼロが失われます。

var twoDigitArray = ["10", "00", "30", "40", "50"]; 

は、どのように私は、各要素の最初の2桁をスライスときに、彼らは最後の配列は次のようになり、この問題を回避することができますか?ご返却数

+3

、すなわち0012 === 10 – Musa

+0

あなたは、JSの先行ゼロが進を意味することを知っていますかこれらはユーザーからどのように受け取っていますか?それが入力または他のフォーム要素にある場合、文字列を開始します。 – KevBot

+0

先行ゼロには大きな値はありません。計算に使用される内部数値と装飾である文字列ベースの表示形式の違いを理解する必要があります。これらのソリューションのすべてが文字列を使用して先行ゼロを保持する理由があります。あなたのユーザ入力は、プログラマが必要に応じて変換できる文字列で保存する必要があります。 – fnostro

答えて

0

あなたが

function zeroFill(number, width) { 
    width -= number.toString().length; 
    if (width > 0) { 
    return new Array(width + (/\./.test(number) ? 2 : 1)).join('0') + number; 
    } 
    return number.toString(); 
} 

ゼロフィル機能を作成することができます。そして、あなたはスライスすることができます

number.slice(0, 2); 
+0

これは動作しません。それを試しましたか? – andi

関連する問題