2017-10-17 13 views
0

clockpicker을 사용하여 문자열에 디지털 타임 스탬프를 제공하는 사용자 입력을 수집하고 있습니다. 예를 들어자바 스크립트를 사용하여 디지털 시간을 읽을 수 있습니다.

:

02:15 

나는이 예제를 사용하여, 그것을 데이터베이스에 있지만 내보기 인쇄에서와 같이 그 유지하고 싶은 :

2h 15m 

불필요한 제로의 제거, 간격 및 "hours"에는 "h"가 추가되고 "minutes"에는 "m"이 추가되었습니다. 또한 시간을 지정하지 않으면 분만 가져 오는 것이 좋으며, 분이 지정되지 않으면 그 반대의 경우도 마찬가지입니다.

JavaScript에서 "날짜"기능을 사용하여 전체 타임 스탬프를 변환하는 모든 예제가 있습니다. 나는이 값으로 만 사용할 수있는 것 같지 않고 정규 표현식에 끔찍하다.

우아한 방법을 찾고 싶습니다. 아마도 내보기를 렌더링하기 전에 그것을 대체 할 한 줄의 정규식을 찾고 싶습니다. 추가 라이브러리를 사용하지 않는 것이 좋습니다.

도움을 주셨습니다.

답변

0

나는 어쨌든 관리 한 것 같습니다. 내가 좋아할만큼 예쁜 것은 아니지만 작동하며 기술적으로 한 줄 정규식입니다.

t = "00:05"; 
    t2 = "01:00"; 
    t3 = "12:10"; 
    t4 = "02:02"; 

    const replaceTime = (myString) => { 
    myString = myString.replace(/0?([1-9]{0,}[0-9]):0?([1-9]{0,}[0-9])/g, '$1h $2m').replace(/\s0m/g, '').replace(/0h\s/g, ''); 
    return myString; 
    } 

    console.log(replaceTime(t)); 
    console.log(replaceTime(t2)); 
    console.log(replaceTime(t3)); 
    console.log(replaceTime(t4)); 

반환 :

5m 
1h 
12h 10m 
2h 2m