반응형
자바스크립트 화폐 /금액 입력 예제
(숫자만 입력 + 3자리마다 콤마 표시)
보통 input 박스에 금액을 입력할 때에 천 단위인 3자리마다 콤마를 찍도록 제어하는데요,
여기에 숫자만 입력하도록 제어가 함께 들어가도록 예제를 작성해보겠습니다.
정규식을 사용하는 방법도 있지만,
자동으로 콤마를 찍어주는 toLocalString() 을 사용했습니다.
toLocalString()은 Number()로 문자열을 숫자형으로 바꾼 후 사용 가능합니다.
1. 자바스크립트 함수 부분
function onlyNumberWithComma(obj) {
var number = obj.value;
//숫자가 아닌 값 모두 replace 해주기
number=number.replace(/[^0-9]/g,'');
//콤마 표시
number=Number(number).toLocaleString();
//다시 value 지정해주기
obj.value = number;
}
2. html 코드 부분
<input type="text" oninput="onlyNumberWithComma(this);"/>
인풋박스의 oninput에 위 함수를 걸어주게되면,
잘못된 값이 입력되었다가 지워지는 등의 액션이 보이지 않아 아래와 같이 깔끔하게 입력됩니다.
위 3줄짜리 자바스크립트 코드를 주석없이 한줄로 간단히 정리해보면 아래와 같습니다.
function onlyNumberWithComma(obj) {
obj.value = Number(obj.value.replace(/[^0-9]/g,'')).toLocaleString();
}
실제로 사용할때는 한줄짜리로 사용하는게 깔끔하겠네요!
도움이 되셨길 바랍니다!
'프로그래밍 공부 > Javascript' 카테고리의 다른 글
[javascript/jQuery] 속성이 특정 문자로 시작하는, 끝나는, 포함하는 요소 가져오기(선택자) (0) | 2023.08.30 |
---|---|
javascript) 팝업창(새 창) 띄우는 법 (0) | 2023.04.09 |
HTML) 테이블 행, 열 colspan, rowspan으로 병합하기 + 예제 (0) | 2022.11.13 |
[Javascript] Input박스에 숫자만 입력 가능하게 제어하기 (2) | 2021.03.02 |
[JavaScript/JQuery] 테이블 이벤트 발생 시 같은 행의 요소 선택되게 하기(parent, siblings, children) (0) | 2020.08.06 |
댓글