tostring 원하는 위치에만 점 찍기가 가능할까요?

tostring 원하는 위치에만 점 찍기가 가능할까요?

QA

tostring 원하는 위치에만 점 찍기가 가능할까요?

본문

this.target_frame.innerHTML = this.count.toString().replace(/\B(?=(\d{2})+(?!\d))/g, '.');

 

이게 두자리마다 점을 찍는찍는건데 저는 마지막 1자리에만? 점을 찍고싶습니다.

123인데 12.3처럼 보이게요.

가능할까요?

이 질문에 댓글 쓰기 :

답변 3

다음과 같이 하시면 되지 않을까 합니다.

 


this.target_frame.innerHTML = this.count.toString().replace(/(\d)(?=(\d{2})+(?!\d))/g, '$1.');

정규 표현식에서 $1은 정규 표현식에서 괄호로 둘러싸인 첫 번째 그룹에 해당하는 것을 나타내며 괄호로 둘러싸인 부분은 패턴 매칭시에 캡처되는데, 이를 "캡처 그룹"이라고 합니다.

안녕하세요.

아래의 내용을 참고해 보시겠어요?

 

let count = 123;
let str = count.toString();
let result = str.slice(0, -1) + '.' + str.slice(-1);
this.target_frame.innerHTML = result;
 

 

답변 감사합니다.

제이앤님의 답변은 제가 이해를 못해서 적용을 못하고... 웹메이킹님 답변은 적용이 안되네요.

그래서 어찌어찌 정규식을 검색해서 이거 저거 대입하고 있다가 해결을 하였습니다.

그런데 정작.. 무슨 뜻인지를 모르겟네요.

혹시 설명해주실 수 있을까요 ?

 


this.target_frame.innerHTML = this.count.toString().replace(/\B(?=(\d{1})(?!\d))/g, '.');

 

(\d{1})(?!\d) 요 부분이 이해가 안갑니다..

\d{1}: 이 부분은 하나의 숫자를 나타냅니다.
\d는 숫자를 의미하고, {1}는 정확히 한 번만 해당 패턴이 반복되어야 함을 나타냅니다.
즉 \d{1}은 정확히 한 자리 숫자를 매칭하는 패턴입니다.

(?!\d): 이 부분은 "숫자 뒤에 숫자가 오지 않아야 한다"는 의미를 가집니다.
(?!\d)는 "숫자를 뒤따르지 않는 위치"를 찾는 "negative lookahead"입니다. 따라서 이 부분은 숫자가 뒤따르지 않는 위치, 즉 숫자의 끝을 의미합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 82
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT