2017-07-10 10 views
0

これは恐らく初心者の質問ですが、わかりません。入力値の前に再帰的に数値を追加する方法

私はminlegth 9に入力されたテキストを持っている、と私はこのような何かしなければならない:ユーザー種類一つだけの数が、私はこの数がvalue.length == 9

Example: 
123 => 00000
に到達する前に、いくつかの "0"を追加する必要がある場合

私は角度2の入力フォームとパイプを使用して結果を変換しています。

誰でも手助けできますか?

transform(val) { 
     var standardLength = "000000000"; 
     return (standardLength + val).slice(-standardLength.length); 
    } 

おかげでみんなに:


Hereは、私は解決策を見つけました!

+1

は、あなたがこれまでにしようとしているどのようなコードを表示しますか? – SaiUnique

+0

[先行ゼロで値を埋め込むにはどうすればよいですか?](https://stackoverflow.com/questions/1267283/how-can-i-pad-a-value-with-leading-zeros) –

+0

可能な重複['ngModel'は 'input'の既知のプロパティではないため、バインドできません](https://stackoverflow.com/questions/38892771/cant-bind-to-ngmodel-since-it-isnt-既知の入力特性) –

答えて

0
transform(val){ 
    let zeros = "000000000"; 
    return zeros.concat(val).slice(Math.min(val.toString().length * -1,-9)); 
} 
0
number=("0".repeat(9)+number).substr(-9); 

これを変更時の入力値にそのまま適用してください。

0

希望の長さが常に静的(ここでは9)の場合は、これが最も簡単な方法です。

num = [1, 11, 111, 1111, 11111]; 
 
for (var i = 0; i < 5; i++) { 
 
    console.log(("000000000" + num[i]).substr(-9,9)); 
 
}


この情報がお役に立てば幸い!

0

あなたの方法は最適ではありません。

Slice()メソッドを使用して、必要な文字列を入力することができます。

すなわち:

('0' + '').slice(-2) 
0
function pad(num, size) { 
    var s = num+""; 
    while (s.length < size) s = "0" + s; 
    return s; 
} 

// usage 
pad(123, 9) 
関連する問題