반응형
예를 들어 폼에 금액을 입력받는 경우, 숫자만 입력받아야 합니다.
또, 금액에 콤마(,)를 찍을 수 있다면 더 좋을 것입니다.
Javascript로 숫자만 입력할 수 있고, 자동으로 금액 콤마가 찍히도록 해보겠습니다.
1. 숫자만 입력 / 문자 제거
function removeChar(event) {
event = event || window.event;
var keyID = (event.which) ? event.which : event.keyCode;
if ( keyID == 8 || keyID == 46 || keyID == 37 || keyID == 39 ) {
return;
} else {
//숫자만 입력
event.target.value = event.target.value.replace(/[^0-9]/g, "");
}
}
- event의 keyID를 받아와서 문자일 경우 입력이 되지 않도록 했습니다.
- 숫자만 입력하는 부분에 event.target.value.replace(/[^-\.0-9]/g, ""); 로 바꿔주면 소수점까지 입력할 수 있습니다.
2. 콤마 찍기
function comma(obj) {
var regx = new RegExp(/(-?\d+)(\d{3})/);
var bExists = obj.indexOf(".", 0);
var strArr = obj.split('.');
while (regx.test(strArr[0])) {
strArr[0] = strArr[0].replace(regx, "$1,$2");
}
if (bExists > -1) {
obj = strArr[0] + "." + strArr[1];
} else {
obj = strArr[0];
}
return obj;
}
- 0번째부터 소수점(.)을 찾은 후, 문자열에 정규식 특수문자가 포함 되어있는지 체크합니다.
- 정수 부분에만 콤마를 달도록 했습니다.
- 소수점 문자열이 발견되지 않았을 경우 -1을 반환했습니다.
3. 콤마 풀기
function uncomma(str) {
str = "" + str.replace(/,/gi, '');
str = str.replace(/(^\s*)|(\s*$)/g, "");
return (new Number(str));//문자열을 숫자로 반환
}
- str에서 콤마를 제거하고, 공백과 문자열을 제거했습니다.
- 마지막으로 문자열을 숫자로 반환했습니다.
4. input box에 콤마 달기
function inputNumberFormat(obj) {
obj.value = comma(obj.value);
}
5. HTML 예제 코드
결제금액 :
<input type="text" name="price" id="price" onKeyUp="removeChar(event);inputNumberFormat(this);" onKeyDown="inputNumberFormat(this);">
- onKeyUp에 removeChar와 inputNumberFormat을 호출했습니다.
- onKeyDown에는 inputNumberFormat만 호출했습니다.
이상으로 Javascript로 숫자만 입력 받고, 숫자에 콤마 찍는 방법에 대해 알아봤습니다.
반응형
'Web Developer's Story > JAVASCRIPT' 카테고리의 다른 글
[JAVASCRIPT] Math 객체 함수 사용법 및 예제 (0) | 2020.09.17 |
---|---|
[JAVASCRIPT] 모바일, PC 브라우저 정보 확인 방법 (0) | 2020.09.09 |
[JAVASCRIPT] 파일 확장자, 용량(사이즈) 확인 예제 (0) | 2020.09.03 |
[JAVASCRIPT] form 입력 값 체크하기 (validation - 유효성 검사) (0) | 2020.08.16 |
[JAVASCRIPT, HTML] 웹사이트에 카카오맵 구현하기 (0) | 2020.07.30 |