2016-11-21 8 views
6

У меня есть номер, скажем 9. Но мне это нужно как String «09».Angular2 или TypeScript Left padding a String with Zeros

Я знаю, что могу написать свою собственную логику. Но я ищу неявную функцию использования, которая может использовать ее.

Я использую angular2 с TypeScript. Ищете что-то вроде this.

Просто Подобно как Java

String.format("%010d", Integer.parseInt(mystring)); 
+0

Посмотреть [Как я могу создать Zerofilled значение с помощью JavaScript?] (http://stackoverflow.com/questions/1267283/how-can-i-create-a-zerofilled-value-using-javascript) –

+0

Я не думаю, что angularjs или angular2 предоставляют такой метод –

+0

TypeScript и JavaScript не имеют встроенных форматов или функций sprintf. Вы можете использовать [сторонний вариант] (http://stackoverflow.com/q/36495685/6923555), если хотите. – Rodrigo

ответ

11

Вы можете создать свою собственную функцию для этого. Чтобы отформатировать номер, вам нужно сначала преобразовать его в строку.

function pad(num, size) { 
    let s = num+""; 
    while (s.length < size) s = "0" + s; 
    return s; 
} 

машинопись

pad(num:number, size:number): string { 
    let s = num+""; 
    while (s.length < size) s = "0" + s; 
    return s; 
} 

Edit: Есть несколько лучше и более производительный способов сделать это. Смотрите обсуждение в этом Ответе: https://stackoverflow.com/a/9744576/1734678 (я рекомендую прочитать большинство из представленных ответов, если есть время)

0

С последней машинописью, вы можете сделать:

let myStr:string = padLeft('123', '0', 6); // '000123' 

padLeft(text:string, padChar:string, size:number): string { 
    return (String(padChar).repeat(size) + text).substr((size * -1), size) ; 
}