[JavaScript] 자바스크립트 문자열 길이 맞추기

2022. 5. 24. 17:03Program/JavaScript

041_자바스크립트 문자열 길이 맞추기

[적용]

  • 10 미만의 숫자 앞에 0을 붙여 두 자리 형식을 만들고 싶을 때

[문법]

메소드 의미 반환
문자열.padStart(전체길아, [추가문자열*]  문자열 시작 부분에 문자열 추가 문자열
문자열.padEnd(전체길이, [추가문자열*]) 문자열 끝 부분에 문자열 추가  문자열

* 생략 가능


[내용]

padStart(), padEnd() 는 문자열이 지정한 길이가 될 때까지 작업을 반복한다.

'5'.padStart(2, '0');  // 05
'ff'padEnd(6, '0');  // ff0000

 

지정한 길이가 실제 문자열보다 짧은 경우 문자열 변환은 이루어지지 않는다.

인수에 추가 문자열을 생략하면 공백이 입력된다.

'123'.padStart(3, '0');  // 123
'ff'.padStart(6);  // '    ff' 앞부분에 4개의 공백이 삽입됨

[예시]

padStart()와 관련하여 디지털 시계의 표시 방식에 대해 알아보자.

현재 시각을 시, 부느 초로 나누고 시간의 경과에 따라 시간을 표시한다.

HTML                                                                                                                                                              index.html

<body>
    <span class="hour"></span>
    : <span class="minute"></span>
    : <span class="second"></span>
</body>

JavaScript                                                                                                                                                          main.js

/** 시간 */
const hourElement = document.querySelector('.hour');

/** 분 */
const minuteElement = document.querySelector('.minute');

/** 초 */
const secondElement = document.querySelector('.second');

update();

/**
 * 현재 시간 표시 처리
 */
function update() {
    const currentTime = new Date();
    
    // 시간 단위의 표시
    const hour = currentTime.getHours();
    hourElement.innerText = addZeroPadding(hour);
    
    // 분 단위의 표시
    const minute = currentTime.getMinutes();
    minuteElement.innerText = addZeroPadding(minute);
    
    // 초 단위의 표시
    const second = currentTime.getSeconds();
    secondElement.innerText = addZeroPadding(second);
    
    // 프레임에서 update() 재실행
    requestAnimationFrame(update);
}

/**
 * 두 자리 형식이 되도록 앞부분에 0을 추가하는 함수
 * @param num
 * @returns {string}
 */
function addZeroPadding(num) {
    return String(num).padStart(2, '0');
}

코드 내 정의한 addZeroPadding()은 파라미터 num이 10 미만의 한 자리 숫자이면 앞에 0을 붙인 문자열을 반환하고,

10 미만이 아니라면 값을 그대로 반환하는 함수이다.

 

실행결과

10 미만이면 앞에 0을 붙여 표시한다


 

 

 

 

 

참조 :
실무에 바로 적용하는 자바스크립트 코드레시피 278
아케다 야스노부, 카노 타케시 지음 / 이춘혁 옮김