답변 3개 / 댓글 4개
채택된 답변
+20 포인트
다음과 같이 하시면 되지 않을까 합니다.
Copy
this.target_frame.innerHTML = this.count.toString().replace(/(\d)(?=(\d{2})+(?!\d))/g, '$1.');
답변 감사합니다.
제이앤님의 답변은 제가 이해를 못해서 적용을 못하고... 웹메이킹님 답변은 적용이 안되네요.
그래서 어찌어찌 정규식을 검색해서 이거 저거 대입하고 있다가 해결을 하였습니다.
그런데 정작.. 무슨 뜻인지를 모르겟네요.
혹시 설명해주실 수 있을까요 ?
Copy
this.target_frame.innerHTML = this.count.toString().replace(/\B(?=(\d{1})(?!\d))/g, '.');
(\d{1})(?!\d) 요 부분이 이해가 안갑니다..
답변에 대한 댓글 2개
\d{1}: 이 부분은 하나의 숫자를 나타냅니다.
\d는 숫자를 의미하고, {1}는 정확히 한 번만 해당 패턴이 반복되어야 함을 나타냅니다.
즉 \d{1}은 정확히 한 자리 숫자를 매칭하는 패턴입니다.
(?!\d): 이 부분은 "숫자 뒤에 숫자가 오지 않아야 한다"는 의미를 가집니다.
(?!\d)는 "숫자를 뒤따르지 않는 위치"를 찾는 "negative lookahead"입니다. 따라서 이 부분은 숫자가 뒤따르지 않는 위치, 즉 숫자의 끝을 의미합니다.
\d는 숫자를 의미하고, {1}는 정확히 한 번만 해당 패턴이 반복되어야 함을 나타냅니다.
즉 \d{1}은 정확히 한 자리 숫자를 매칭하는 패턴입니다.
(?!\d): 이 부분은 "숫자 뒤에 숫자가 오지 않아야 한다"는 의미를 가집니다.
(?!\d)는 "숫자를 뒤따르지 않는 위치"를 찾는 "negative lookahead"입니다. 따라서 이 부분은 숫자가 뒤따르지 않는 위치, 즉 숫자의 끝을 의미합니다.
답변을 작성하려면 로그인이 필요합니다.