tostring 원하는 위치에만 점 찍기가 가능할까요? 채택완료
this.target_frame.innerHTML = this.count.toString().replace(/\B(?=(\d{2})+(?!\d))/g, '.');
이게 두자리마다 점을 찍는찍는건데 저는 마지막 1자리에만? 점을 찍고싶습니다.
123인데 12.3처럼 보이게요.
가능할까요?
답변 3개
다음과 같이 하시면 되지 않을까 합니다.
</p>
<p>this.target_frame.innerHTML = this.count.toString().replace(/(\d)(?=(\d{2})+(?!\d))/g, '$1.');
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
답변 감사합니다.
제이앤님의 답변은 제가 이해를 못해서 적용을 못하고... 웹메이킹님 답변은 적용이 안되네요.
그래서 어찌어찌 정규식을 검색해서 이거 저거 대입하고 있다가 해결을 하였습니다.
그런데 정작.. 무슨 뜻인지를 모르겟네요.
혹시 설명해주실 수 있을까요 ?
</p>
<p>this.target_frame.innerHTML = this.count.toString().replace(/\B(?=(\d{1})(?!\d))/g, '.');</p>
<p>
(\d{1})(?!\d) 요 부분이 이해가 안갑니다..
답변에 대한 댓글 2개
\d는 숫자를 의미하고, {1}는 정확히 한 번만 해당 패턴이 반복되어야 함을 나타냅니다.
즉 \d{1}은 정확히 한 자리 숫자를 매칭하는 패턴입니다.
(?!\d): 이 부분은 "숫자 뒤에 숫자가 오지 않아야 한다"는 의미를 가집니다.
(?!\d)는 "숫자를 뒤따르지 않는 위치"를 찾는 "negative lookahead"입니다. 따라서 이 부분은 숫자가 뒤따르지 않는 위치, 즉 숫자의 끝을 의미합니다.
댓글을 작성하려면 로그인이 필요합니다.
안녕하세요.
아래의 내용을 참고해 보시겠어요?
let count = 123; let str = count.toString(); let result = str.slice(0, -1) + '.' + str.slice(-1); this.target_frame.innerHTML = result;
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인