반응형
JavaScript에서 '1'을 '0001'로 변환
타사 라이브러리를 사용하지 않고 자바스크립트에서 '1'을 '0001'로 변환하려면 어떻게 해야 합니까?나는 스프릿을 사용하여 php로 이것을 했습니다:$time = sprintf('%04.0f',$time_arr[$i]);
이것은 영리한 작은 속임수입니다(SO에서 본 적이 있다고 생각합니다).
var str = "" + 1
var pad = "0000"
var ans = pad.substring(0, pad.length - str.length) + str
자바스크립트는 서브스트링에 대한 두 번째 인수가 부정적이어서 "정확히 오버플로"(또는 보는 방법에 따라 잘못됨)인 경우 일부 언어보다 더 관대합니다.
즉, 위와 같은 경우:
- 1 -> "0001"
- 12345 -> "12345"
음수를 지원하는 것은 연습으로 남습니다 ;-)
자바스크립트의 유연성을 보여주기 위해: 당신은 이것을 위해 하나의 라이너를 사용할 수 있습니다.
function padLeft(nr, n, str){
return Array(n-String(nr).length+1).join(str||'0')+nr;
}
//or as a Number prototype method:
Number.prototype.padLeft = function (n,str){
return Array(n-String(this).length+1).join(str||'0')+this;
}
//examples
console.log(padLeft(23,5)); //=> '00023'
console.log((23).padLeft(5)); //=> '00023'
console.log((23).padLeft(5,' ')); //=> ' 23'
console.log(padLeft(23,5,'>>')); //=> '>>>>>>23'
음수에도 사용하려면 다음을 수행합니다.
Number.prototype.padLeft = function (n,str) {
return (this < 0 ? '-' : '') +
Array(n-String(Math.abs(this)).length+1)
.join(str||'0') +
(Math.abs(this));
}
console.log((-23).padLeft(5)); //=> '-00023'
사용하지 않으려는 경우 다른 방법Array
:
number.prototype.padLeft = function (len,chr) {
var self = Math.abs(this)+'';
return (this<0 && '-' || '')+
(String(Math.pow( 10, (len || 2)-self.length))
.slice(1).replace(/0/g,chr||'0') + self);
}
String.prototype.padZero= function(len, c){
var s= this, c= c || '0';
while(s.length< len) s= c+ s;
return s;
}
이름에도 불구하고 공백을 포함한 모든 문자로 왼쪽 패드를 사용할 수 있습니다.저는 오른쪽 패딩을 사용한 적이 없지만, 그것은 충분히 쉬울 것입니다.
다음 개체를 사용합니다.
function Padder(len, pad) {
if (len === undefined) {
len = 1;
} else if (pad === undefined) {
pad = '0';
}
var pads = '';
while (pads.length < len) {
pads += pad;
}
this.pad = function (what) {
var s = what.toString();
return pads.substring(0, pads.length - s.length) + s;
};
}
이를 통해 다양한 "패딩"을 쉽게 정의할 수 있습니다.
var zero4 = new Padder(4);
zero4.pad(12); // "0012"
zero4.pad(12345); // "12345"
zero4.pad("xx"); // "00xx"
var x3 = new Padder(3, "x");
x3.pad(12); // "x12"
언급URL : https://stackoverflow.com/questions/5366849/convert-1-to-0001-in-javascript
반응형
'source' 카테고리의 다른 글
asp.net c#의 Web.config 파일에서 시작 페이지를 설정하는 방법 (0) | 2023.08.24 |
---|---|
null 값으로 날짜 열을 인덱싱하는 방법은 무엇입니까? (0) | 2023.08.24 |
ODA-12154 ODP.NET을 사용하여 연결을 시도하는 중 오류 발생 (0) | 2023.08.24 |
자바스크립트에서 날짜 시간을 얻는 방법은 무엇입니까? (0) | 2023.08.24 |
메모리 캐시 범위 세션 또는 응용 프로그램이 광범위합니까? (0) | 2023.08.24 |