2022. 10. 25. 21:02
반응형
은행앱에서 이체할 때 금액을 입력하면 보통 자동으로 숫자 3자리마다 쉼표가 생긴다.
그렇게 하면 금액이 커져도 알아보기 편하다.
예전에는 이런걸 만들 때 inputmask 등의 플러그인을 많이 이용했는데 이제는 직접 만들어보기로 했다.
하지만 정규식은 검색을 통해 퍼왔다.
html input을 이용할 때 type=number가 아니라 text를 주로 많이 쓰는데 별다른 조치를 하지 않으면 그냥 키보드에 치는 그대로 입력되는데 금액이나 큰 숫자를 입력해야 할 때 키보드 이벤트를 통해 숫자만 입력되도록 하면서 3자리마다 콤마까지 찍히도록 해봤다.
정규식, input 이벤트를 활용하여 우선 입력된 값에서 숫자만 남기고 다 없앤 다음 3자리마다 콤마를 찍어 value를 바꾼다.
<input type="text" id="testInput" />
<script>
function inputAutoComma(el) {
el.addEventListener("input", function(e) {
var val = e.target.value.replace(/[^0-9]/g, "");
e.target.value = val.replace(/\d(?=(?:\d{3})+$)/g, '$&,');
});
}
inputAutoComma(document.getElementById("testInput"));
</script>
함수를 생성하기 싫을 때는 그냥 input에 oninput 속성으로도 가능하다.
<input type="text" oninput="this.value = this.value.replace(/[^0-9]/g, '').replace(/\d(?=(?:\d{3})+$)/g, '$&,')" />
반응형
'dev' 카테고리의 다른 글
[JavaScript] 소수(prime number) 찾기 (1) | 2024.11.15 |
---|---|
[JavaScript] 카카오맵 API 주소 입력하여 좌표 구하기 (0) | 2022.12.26 |
[Java/Spring] RestTemplate 이용 get, post 테스트 (3) | 2022.11.03 |
[JavaScript] input 소수 입력 (자리수 제한) (0) | 2022.10.27 |
[Java/Spring] NamedParameterJdbcTemplate 활용 DB 접근 (1) | 2022.09.22 |
[Java] 페이징 처리를 위해 간단히 만든 Pagination 클래스 (0) | 2022.09.04 |
[Java] 간단한 Spring Boot 프로젝트 생성, 실행 (0) | 2022.09.03 |
[JavaScript] HTML canvas 마우스로 그리기 (0) | 2022.06.17 |