728x90
숫자 세자리 마다 콤마(,) 찍는 방법 두가지를 소개합니다.
1. 정규식(Regular Expression) 사용하기
var number = 1234567.89;
return number.toString().replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",");
//returns 1,234,567.89
하지만 위 정규식에서의 ?<! 와 같은 표기법은 최신 기법으로, 익스 ~11, ios, safari 에서 통하지 않는 스크립트이다.
때문에 위처럼 넣게되면 함수 자체가 에러를 뱉어내므로, 스크립트를 호출하지 못하는 에러가 발생한다.
(object Error / function undefined)
return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
//returns 1,234,567.89
위와같이 정규식을 기술해야 익스, ios, safari 에서 정상적으로 함수를 호출할 수 있게 된다.
2. toLocaleString() 함수 사용하기
var number = 1234567.8911111;
return number.toLocaleString();
//returns 1,234,567.89
반드시 숫자를 변수에 담은 뒤에 사용해야한다. 변수 안에 숫자를 넣으면 생성되는 Number 객체 안에 있는 함수를 사용하는 것이기 때문에 그냥 상수 옆에 사용하면 실행되지 않는다.
소수점 아래 숫자를 세자리 이상 출력하고 싶으면 아래와 같이 하면 된다.
var number = 1234567.8911111;
return number.toLocaleString(undefined, {maximumFractionDigits: 5});
//returns 1,234,567.8911111
무조건 소수점 아래 10자리를 뽑아야하면 아래와 같이 하면 된다.
var number = 1234567.8911111;
return number.toLocaleString(undefined, {maximumFractionDigits: 10});
//returns 1,234,567.8911111000
출처: https://nm817.tistory.com/53#comment13909717, https://this-programmer.tistory.com/186
'Web > Javascript' 카테고리의 다른 글
[Javascript] 형변환 / 실수를 정수로 형변환 (0) | 2021.11.15 |
---|---|
[JavaScript] 최대 공약수, 최소 공배수 구하는 알고리즘 (1) | 2021.11.15 |
[Javascript] String을 Number타입으로 바꾸기 (0) | 2021.11.15 |
[Javascript] 자바 스크립트에서 문자열을 여러 구분 기호로 분할하기(split) (0) | 2021.10.05 |
[Javascript]eval함수/문자열을 수식으로 인식하게하는 함수 (0) | 2021.10.01 |
댓글