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

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

QA

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

답변 3

본문

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.');

답변 감사합니다.

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

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

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

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

 


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"입니다. 따라서 이 부분은 숫자가 뒤따르지 않는 위치, 즉 숫자의 끝을 의미합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 2,663
© SIRSOFT
현재 페이지 제일 처음으로